2.Python list / tuple区别
都是线性结构,支持下标访问
①list 是可变对象,tuple 是不可变对象,保存的引用不可变,如果tuple里面保存一个list,list本身还是可变的
t = ([1], 2, 3)
t[2] = 3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
t[0]
[1]
t[0].append(1)
t
([1, 1], 2, 3) # 第一个列表对象元素虽然改变,但它依然是这个列表对象
保存的引用不可变指的是,你没法替换这个对象,但是如果它本身就是一个可变对象,是可以修改这个引用指向的可变对象。
② list 没法作为字典的 key , tuple可以(可变对象不可以hash)。
网友评论