python dict key問題
課程里是這么說的
dict的第三個特點是作為 key 的元素必須不可變,Python的基本類型如字符串、整數、浮點數都是不可變的,都可以作為 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
這個打印出來會報錯可以從id(x)的結果來解釋,x = 3時id(x)與x = 1的id(x)不同,即發生了改變。
2016-05-12
這里的是否可變是不是指的指向的存儲塊是否可變?而不是單純的值可變?
2016-05-12
變量做為key,加入到dict中,實際是已變量當前的值作為key, 看你自己的例子中,當x=2時,錯誤信息指出是keyError:2 而不是keyError:x?