第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

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'

正在回答

4 回答

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

d1?=?{1?:?2}

print?d1==d
True

是不是懂了,,

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

這個(gè)打印出來會(huì)報(bào)錯(cuò)可以從id(x)的結(jié)果來解釋,x = 3時(shí)id(x)與x = 1的id(x)不同,即發(fā)生了改變。

0 回復(fù) 有任何疑惑可以回復(fù)我~

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

0 回復(fù) 有任何疑惑可以回復(fù)我~

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

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

CoderLeob 提問者

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

舉報(bào)

0/150
提交
取消
初識(shí)Python
  • 參與學(xué)習(xí)       758365    人
  • 解答問題       8967    個(gè)

學(xué)python入門視頻教程,讓你快速入門并能編寫簡(jiǎn)單的Python程序

進(jìn)入課程

python dict key問題

我要回答 關(guān)注問題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)