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'
相关文章
相关标签/搜索