Python複習筆記——tuple

最近把python的基礎語法複習一下,發現tuple這個比較特殊,有幾點須要注意下python

1.tuple的每一個元素值不能改變,如:code

>>> 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只管每一個元素的值不改變hash

>>> b=[1,2]
>>> a=(b,3)
>>> id(b)
4454662368
>>> id(a)
4454507512
>>> id(a[0])
4454662368

如上,當我再修改b的時候,a裏面看到的是修改後的值it

>>> b[0]=8
>>> a
([8, 2], 3)

可是我給b從新複製的話,b已是指向了新的地址ast

>>> b=[4,5]
>>> id(b)
4454500256
>>> id(a[0])
4454662368
>>> a
([8, 2], 3)

對b的修改固然不會影響到a。基礎

3.tuple能夠用做dict的key,由於它是不可變的。可是tuple做爲dict的key時有個限制——tuple的元素是能夠哈希的。
通常是這樣用的:module

>>> c=(4,6)
>>> d={c:'adf'}

可是你不能這樣用:object

>>> l=[5,4]
>>> c=('dfdf',l)
>>> d={c:'adf'}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
相關文章
相關標籤/搜索