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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用列表理解修改字典列表

使用列表理解修改字典列表

所以我有以下字典清單myList = [{'one':1, 'two':2,'three':3},          {'one':4, 'two':5,'three':6},          {'one':7, 'two':8,'three':9}]這只是我所擁有字典的一個(gè)例子。我的問(wèn)題是,可以使用列表理解以某種方式將two所有字典中的say鍵修改為它們的值的兩倍嗎?我知道如何使用列表理解來(lái)創(chuàng)建字典的新列表,但是不知道如何修改它們,我想出了類(lèi)似的方法new_list = { <some if condiftion> for (k,v) in x.iteritems() for x in myList  }我不確定如何在中指定條件,<some if condiftion>我想正確的嵌套列表理解格式也正確嗎?我想要像這樣的示例的最終輸出[ {'one':1, 'two':4,'three':3},{'one':4, 'two':10,'three':6},{'one':7, 'two':16,'three':9}  ]
查看完整描述

3 回答

?
三國(guó)紛爭(zhēng)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

將列表理解與dict嵌套嵌套一起使用:


new_list = [{ k: v * 2 if k == 'two' else v for k,v in x.items()} for x in myList]

print (new_list)

[{'one': 1, 'two': 4, 'three': 3}, 

 {'one': 4, 'two': 10, 'three': 6}, 

 {'one': 7, 'two': 16, 'three': 9}]


查看完整回答
反對(duì) 回復(fù) 2021-04-20
?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

在python 3.5+中,您可以在PEP 448中引入的dict文字中使用新的解包語(yǔ)法。這將創(chuàng)建每個(gè)字典的副本,然后覆蓋鍵的值two:


new_list = [{**d, 'two': d['two']*2} for d in myList]

# result:

# [{'one': 1, 'two': 4, 'three': 3},

#  {'one': 4, 'two': 10, 'three': 6},

#  {'one': 7, 'two': 16, 'three': 9}]


查看完整回答
反對(duì) 回復(fù) 2021-04-20
?
明月笑刀無(wú)情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊

一個(gè)簡(jiǎn)單的for循環(huán)就足夠了。但是,如果要使用字典理解,我發(fā)現(xiàn)定義映射字典比三元語(yǔ)句更易讀和可擴(kuò)展:


factor = {'two': 2}


res = [{k: v*factor.get(k, 1) for k, v in d.items()} for d in myList]


print(res)


[{'one': 1, 'two': 4, 'three': 3},

 {'one': 4, 'two': 10, 'three': 6},

 {'one': 7, 'two': 16, 'three': 9}]


查看完整回答
反對(duì) 回復(fù) 2021-04-20
  • 3 回答
  • 0 關(guān)注
  • 182 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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