元组 - (元素1,元素2,元素3...)
列表 - [元素1,元素2,元素3...]
元组是可以不带圆括号的,只要逗号隔开就行。和其他序列一样,元组也可以用下标来获取,元组也支持切片操作,但是元组元素是不能改变的,所以元组不能只能查,不能增删改减。对于查就用count(),index()
对比列表,元组可以切片,查,元组之间相加、相乘、嵌套、迭代、嵌套列表的循环,但是没有元组推导式。
rhyme = 1,2,3,4,5,"上山打老虎"
rhyme[-1] #'上山打老虎'
rhyme[1] #2
rhyme[::-1] #('上山打老虎', 5, 4, 3, 2, 1)
s = 1,3,3,2,4,2,5
s.count(3) #2
heros = "绿巨人","黑寡妇","钢铁侠"
heros.index("钢铁侠") #2
a = (1,2,3)
b = (4,5,6)
a + b #(1, 2, 3, 4, 5, 6) 加法
a * 3 #(1,2,3,1,2,3,1,2,3) 乘法
w = a,b #((1, 2, 3), (4, 5, 6)) 嵌套
"""支持迭代"""
for each in a:
print(each)
"""嵌套元组循环"""
for i in w:
for each in i:
print(each)
元组的圆括号什么时候省略?与其思考什么时候加圆括号不如一直加着
如何生成一个元素的元组? x = (1,),注意有逗号,通过type(x)看到类型为tuple,中文为元组
打包和解包:生成一个元组我们称之为元组的打包,将元组元素一次性赋值给变量名称之为解包,解包的变量名和元组的元素数要一致。
元组一定不可变?元组中的元素虽然是不可变的,但是元组中的元素指向一个可变的列表,那也是依然可以修改元组里的内容。
a = (123,"ABC",3.14) #打包
x,y,z = a #赋值
x,y = 10,20 #对于此类多重赋值,是先打包 _=(10,20)
#然后再赋值
s = [1,2,3]
k = [4,5,6]
t = (s,k) #([1, 2, 3], [4, 5, 6])
t[0][0] = 0 #([0, 2, 3], [4, 5, 6])