元组tuple:元组属于不可变序列,不能修改元组中的元素
元组的创建:
1.使用()创建元组,小括号可以省略
如果元组中只有一个元素,则后面必须加逗号>>>a=(10,)
2.通过tuple()创建元组,tuple(可迭代对象)
a=tuple() #定义一个空元组
b=tuple(‘abc’)
c=tuple(range(3))
d=tuple([2,3,4])
print(a,b,c,d) #() ('a', 'b', 'c') (0, 1, 2) (2, 3, 4)
tuple()可以接收列表,字符串,其它序列类型等生成元组
list()可以接收元组,字符串,其它序列类型等生成列表
元组的元素访问和计数:
元组的元素不能修改
元组的元素访问,index(),count(),切片等操作和列表一样
list.sorted()是列表排序的方法,修改原列表对象,元组没有该方法
对元组排序,只能使用内置函数sorted(tupleObject),并生成新的列表对象
a = (10, 20, 30, 40)
b = sorted(a)
print(b) #[10, 20, 30, 40]
zip():将多个列表对应位置的元素组合成元组,并返回这个zip()对象
如果各个迭代器的元素个数不一致,返回列表长度和最短的对象相等
a=[10,20,30]
b=[40,50,60,70]
c=zip(a,b)
print(c) #<zip object at 0x00000000003AFDC0>
d=list(c)
print(d) #[(10, 40), (20, 50), (30, 60)]
生成器推导式创建元组:
形式上与列表推导式类似,只是生成器推导式使用小括号
生成器推导式生成的只是一个生成器对象
a=(x*2 for x in range(5))
b=tuple(a)
print(b) #(0, 2, 4, 6, 8)
c=tuple(a)
print(c) #()迭代对象在第一次时已经遍历结束了,第二次不能使用