组合数据类型能够将多个同类型或不同类型的数据组织起来 ,通过单一的表示使数据操作更有序更容易。根据数据之间的 关系,组合数据类型可以分为三类:

由于元素之间存在顺序关系,所以序列中可以存在相同数值但位置不同的元素。
序列类型支持成员关系操作符 :

- s="abcdefg"
- l=[[],[],"abcd"]
- print(len(s))
- print(s[0:3:2])
- print(s.index('a'))#序列中第一次出现此元素的位置
- print(s.count('a'))#序列中该元素出现的次数
- if 'a' in s:

元组(tuple)是序列类型中比较特殊的类型,因为它一 旦创建就不能被修改。元组类型在表达固定数据项、函数多 返回值、多变量同步赋值、循环遍历等情况下十分有用。
Python中元组采用逗号和圆括号(可选)来表示。
- #没有小括号的元组
- x = 1, 2, 3, 4, 5
- for i in x:
- print(i)
-
- #有小括号的元组
- x = (1, 2, 3, 4, 5)
- for i in x:
- print(i)
-
- #定义函数,用*b接受元组(2,3,4,5)
- def f(a, *b):
- for i in b:
- a += i
- return a, b
- #返回一个元组,(a,b),而b也是一个元组
-
- #2,3,4,5是元组
- m, n = f(1, 2, 3, 4, 5)
- print(m, n)
集合类型与数学中集合的概念一致,即包含0个或多个数据项的无序组合。集合中元素不可重复,元素类型只能是固定数据类型,例如:整数、浮点数、字符串、元组等, 列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。
由于集合是无序组合,它没有索引和位置的概念,不能分片,集合中元素可以动态增加或删除。集合用大括号({}) 表示,可以用赋值语句生成一个集合。
- #集合用大括号表示,可以放整数型,字符型,浮点型,元组
- n={1,2,3,'a','b',12.3,(1,2,3)}
- print(n)
可以把其他组合类型转换成集合类型
由于集合元素是无序的,集合的打印效果与定义顺序可以 不一致。由于集合元素独一无二,使用集合类型能够过滤掉重复元素。set(x)函数可以用于生成集合。
- l=(1,1,2,2,3,4,5)
- #集合取消重复元素
- s=set(l)
- print(s)
集合练习:
重复元素判定。编写一个函数,接受元组作为参数,如果一个元素在元组中出现了不止一次,则返回True,但不要改变原来元组的值。同时编写调用这个函数和测试结果的程序。
- def f(*t):#用*标识能接收多个参数
- if len(t)>len(set(t)):
- return True
- else:
- return False
- if f(1,1,2,3):
- print("repeat")
- else:
- print("no repeat")



- s = set()#空集合不能通过大括号来创建
- try:
- a = input()
- while a != '':
- s.add(eval(a))
- a = input()
- except NameError:
- print("请输入数字")
- print(s)