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

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

namedtuple的_make函數(shù)傳入dict,將key映射到字段,而不是value,為什么?

#?python3.6
from?collections?import?namedtuple
User?=?namedtuple('User',?['name',?'age',?'height'])

dict_user?=?{
????'name':?'小張',
????'height':?1.75,
????'age'?:?18,
}

user?=?User._make(dict_user)
print(user)

'''
結(jié)果為什么是把dict的key,而不是value賦值給了namedtuple的字段,結(jié)果如下:
User(name='name',?age='height',?height='age')
'''


正在回答

3 回答

因?yàn)?字典雖然是iterable,但是在迭代的時(shí)候,其返回的是key值,而非value值,所以要想使用的是dict的value值,可以像上面說的那樣,使用dict的values(),因?yàn)樵摲椒ǖ玫降氖莇ict的value值的可迭代對(duì)象

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

https://img1.sycdn.imooc.com//5b4b08fa0001811a10950438.jpg

iterable,next()取值



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

namedtuple對(duì)象的_make方法內(nèi)容主要如下:

@classmethod

? ? def _make(cls, iterable, new=tuple.__new__, len=len):

????????result = new(cls, iterable)

其中第二個(gè)參數(shù)new的默認(rèn)值為tuple對(duì)象的__new__方法,該方法是一個(gè)靜態(tài)方法,用于構(gòu)建tuple實(shí)例且在__init__方法之前調(diào)用。

結(jié)合你所寫的代碼:user?=?User._make(dict_user)

user來自于tuple的new方法通過傳入的dict生成,猜測(cè)(做了一些小實(shí)驗(yàn))該方法對(duì)傳入的dict調(diào)用了tuple函數(shù),因此導(dǎo)致dict的key部分作為參數(shù)傳了進(jìn)去。

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

舉報(bào)

0/150
提交
取消

namedtuple的_make函數(shù)傳入dict,將key映射到字段,而不是value,為什么?

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

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

幫助反饋 APP下載

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

公眾號(hào)

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