最近把python的基础语法复习一下,发现tuple这个比较特殊,有几点需要注意下
1.tuple的每个元素值不能改变,如:
>>> a=(1,2)
>>> a[0]=3;
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>>
2.tuple的元素是list的时候,tuple是管不着list的,tuple只管每个元素的值不改变
>>> b=[1,2]
>>> a=(b,3)
>>> id(b)
4454662368
>>> id(a)
4454507512
>>> id(a[0])
4454662368
如上,当我再修改b的时候,a里面看到的是修改后的值
>>> b[0]=8
>>> a
([8, 2], 3)
但是我给b重新复制的话,b已经是指向了新的地址
>>> b=[4,5]
>>> id(b)
4454500256
>>> id(a[0])
4454662368
>>> a
([8, 2], 3)
对b的修改当然不会影响到a。
3.tuple可以用作dict的key,因为它是不可变的。但是tuple作为dict的key时有个限制——tuple的元素是可以哈希的。
一般是这样用的:
>>> c=(4,6)
>>> d={c:'adf'}
但是你不能这样用:
>>> l=[5,4]
>>> c=('dfdf',l)
>>> d={c:'adf'}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。