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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何更新嵌套字典中的鍵值?

如何更新嵌套字典中的鍵值?

守候你守候我 2021-11-16 09:52:46
items = [{'id': 1, 'language': 'English', 'name': 'Sarah', 'description': 'Blah blah'}, {'id': 2, 'language': 'English', 'name': 'Jessica', 'description': 'More blah'}]d = {}for item in items:    language = item['language']    id = item['id']    name = item['name']    description = item['description']    d[language][id] = {'name': name, 'description': description}print(d)我期待在輸出中看到:{'English': {1:{'name': 'Sarah', 'description': 'Blah blah'}, 2:{'name': 'Jessica', 'description': 'More blah'}}}但不幸的是,我收到了 KeyError:那么,問題是如何在嵌套字典中更新/附加值?我做錯了什么?
查看完整描述

2 回答

?
斯蒂芬大帝

TA貢獻1827條經(jīng)驗 獲得超8個贊

'd' 不包含d["English"]您嘗試創(chuàng)建的內(nèi)容d[language][id] = {'name': name, 'description': description}- 因此出現(xiàn)錯誤。


如果它們不存在,您不能“即時”創(chuàng)建中間字典 - 檢查它們是否已經(jīng)存在,如果沒有創(chuàng)建它們 - 或者使用dict.setdefault(key,default)創(chuàng)建條目,如果它還不存在:


items = [{'id': 1, 'language': 'English', 'name': 'Sarah', 'description': 'Blah blah'},

         {'id': 2, 'language': 'English', 'name': 'Jessica', 'description': 'More blah'}]


d = {}

for item in items:


    language = item['language']

    idd = item['id']

    name = item['name']

    description = item['description']


    d.setdefault(language,{})[idd] = {'name': name, 'description': description}


print(d)

輸出:


{'English': {1: {'name': 'Sarah', 'description': 'Blah blah'}, 

             2: {'name': 'Jessica', 'description': 'More blah'}}}

collections.defaultdict如果您在使用時遇到性能問題,您也可以使用setdefault- 速度稍慢。


查看完整回答
反對 回復(fù) 2021-11-16
?
蕭十郎

TA貢獻1815條經(jīng)驗 獲得超13個贊

d 最初是一個空字典,因此當(dāng)您嘗試為d[language][id].


您可以按如下方式更改代碼:


for item in items:


    language = item['language']

    id = item['id']

    name = item['name']

    description = item['description']


    if not language in d:

        d[language] = {}

    d[language][id] = {'name': name, 'description': description}


查看完整回答
反對 回復(fù) 2021-11-16
  • 2 回答
  • 0 關(guān)注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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