亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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'

正在回答

4 回答

##?其實這個很容易理解的,具體原理就不查?doc?了,?直接寫例子
a?=?1
d?=?{a?:?2}
print?d
{1?:?2}

d1?=?{1?:?2}

print?d1==d
True

是不是懂了,,

1 回復 有任何疑惑可以回復我~
x?=?3
d?=??{?x?:?2?}
print??d[x]
2
x?=?1
print?d[x]

這個打印出來會報錯可以從id(x)的結果來解釋,x = 3時id(x)與x = 1的id(x)不同,即發生了改變。

0 回復 有任何疑惑可以回復我~

這里的是否可變是不是指的指向的存儲塊是否可變?而不是單純的值可變?

0 回復 有任何疑惑可以回復我~

變量做為key,加入到dict中,實際是已變量當前的值作為key, 看你自己的例子中,當x=2時,錯誤信息指出是keyError:2 而不是keyError:x?

1 回復 有任何疑惑可以回復我~
#1

CoderLeob 提問者

我知道為什么報錯,我想問的是為什么可變的list不能作為key,而可變的變量卻可以
2016-05-12 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758398    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

python dict key問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號