另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:
1 classmates=('张三','李四','王五') 2 print(classmates)
现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。
但是可以改变tuple中list的内容,如:
1 classmates=('张三','李四','王五',[1,2,3]) 2 print(classmates) 3 classmates[3][2]=4 4 print(classmates)
就可以把list 改成[1,2,4],表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
下面做练习:
L = [ ['Apple', 'Google', 'Microsoft'], ['Java', 'Python', 'Ruby', 'PHP'], ['Adam', 'Bart', 'Lisa'] ]
# 打印Apple:
print(?)
# 打印Python:
print(?)
# 打印Lisa:
print(?)
1 L = [ 2 ['Apple', 'Google', 'Microsoft'], 3 ['Java', 'Python', 'Ruby', 'PHP'], 4 ['Adam', 'Bart', 'Lisa'] 5 ] 6 print(L[0][0]) 7 print(L[1][1]) 8 print(L[2][2])
ok