python dict key問題
課程里是這么說的
dict的第三個(gè)特點(diǎn)是作為 key 的元素必須不可變,Python的基本類型如字符串、整數(shù)、浮點(diǎn)數(shù)都是不可變的,都可以作為 key。但是list是可變的,就不能作為 key。
但是為什么變量的值也是可變的,但是可以作為Key?
>>> x=1
>>> d={x:1}
>>> print d[x]
1
>>> x=2
>>> print d[x]
Traceback (most recent call last):
? File "<stdin>", line 1, in <module>
KeyError: 2
>>> print l
['1', 2]
>>> d={l:1}
Traceback (most recent call last):
? File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
2016-05-12
是不是懂了,,
2016-12-14
這個(gè)打印出來會(huì)報(bào)錯(cuò)可以從id(x)的結(jié)果來解釋,x = 3時(shí)id(x)與x = 1的id(x)不同,即發(fā)生了改變。
2016-05-12
這里的是否可變是不是指的指向的存儲(chǔ)塊是否可變?而不是單純的值可變?
2016-05-12
變量做為key,加入到dict中,實(shí)際是已變量當(dāng)前的值作為key, 看你自己的例子中,當(dāng)x=2時(shí),錯(cuò)誤信息指出是keyError:2 而不是keyError:x?