簡體   English   中英

如何在 Python 中的嵌套字典中添加特定鍵

[英]How To Add Specific Keys In Nested Dictionary In Python

我可能把這本字典的格式弄錯了(我第一次這樣做)

我有一本包含更正 ID 的每個省的字典,並將其添加到值“加拿大”中。 我正在嘗試在嵌套字典中添加所有省份的人口

    ontario = dict(capital="Toronto", largest="Toronto", population=14826276)
    quebec = dict(capital="Quebec City", largest="Montreal", population=8604495)
    nova_Scotia = dict(capital="Halifax", largest='Halifax', population=992055)
    new_Brunswick = dict(capital="Fredricton", largest='Moncton', population=789225)
    manitoba = dict(capital="Winnipeg", largest="Winnipeg", population=1383765)


canada = {ontario, quebec, nova_Scotia, new_brunswick, manitoba, british_columbia, prince_edward_island, saskatchewan, alberta, newfoundland_and_labrador}


 for key, value in canada.items():
        if value and 'population' in value.keys():
            # Adding all values of population to receive total population of canada
            sum += value['population']
            print(sum)

再次提前感謝。

  1. 我只將列出的 5 個省添加到嵌套字典中。
  2. 我使用了一個 for 循環來計算加拿大的總人口(列出的 5 個省份的總和)。

請注意,我的嵌套字典與普通字典具有相同的格式,“a key : value” --> “1 : ontario”

ontario = dict(capital="Toronto", largest="Toronto", population=14826276)
quebec = dict(capital="Quebec City", largest="Montreal", population=8604495)
nova_Scotia = dict(capital="Halifax", largest='Halifax', population=992055)
new_Brunswick = dict(capital="Fredricton", largest='Moncton', population=789225)
manitoba = dict(capital="Winnipeg", largest="Winnipeg", population=1383765)

canada = {1:ontario, 2:quebec, 3:nova_Scotia, 4:new_Brunswick, 5:manitoba}
#canada = {ontario, quebec, nova_Scotia, new_brunswick, manitoba, british_columbia, prince_edward_island, saskatchewan, alberta, newfoundland_and_labrador}

sum = 0
for providence in canada:
    # Adding all values of population to receive total population of canada
    sum += (canada[providence]["population"])

print(sum)

您沒有創建dictionary而是set (沒有keys

要創建字典,您需要像這樣的keys

canada = {1:ontario, 2:quebec, 3:nova_scotia, 4:new_brunswick, 5:manitoba}

canada = {"Ontario":ontario, "Quebec":quebec, "Nova Scotia":nova_scotia, "New Brunswick":new_brunswick, "Manitoba":manitoba}

然后你可以使用canada.items()和 sum 人口

(我使用變量total因為有函數sum()

# --- before `for`-loop ---

total = 0

# --- `for`-loop ---

for key, value in canada.items():
    total += value['population']

# --- after `for`-loop ---

print(total)

或更短

total = sum(value['population'] for value in canada.values())

然后你可以添加到這本詞典

canada['total'] = total

完整代碼:

ontario = dict(capital="Toronto", largest="Toronto", population=14826276)
quebec = dict(capital="Quebec City", largest="Montreal", population=8604495)
nova_scotia = dict(capital="Halifax", largest='Halifax', population=992055)
new_brunswick = dict(capital="Fredricton", largest='Moncton', population=789225)
manitoba = dict(capital="Winnipeg", largest="Winnipeg", population=1383765)

canada = {1:ontario, 2:quebec, 3:nova_scotia, 4:new_brunswick, 5:manitoba}#, british_columbia, prince_edward_island, saskatchewan, alberta, newfoundland_and_labrador

total = 0
for key, value in canada.items():
    total += value['population']
print(total)

#total = sum(value['population'] for value in canada.values())

canada['total'] = total

print(canada)

試試這個。


ontario = dict(capital="Toronto", largest="Toronto", population=14826276)
quebec = dict(capital="Quebec City", largest="Montreal", population=8604495)
nova_Scotia = dict(capital="Halifax", largest='Halifax', population=992055)
new_Brunswick = dict(capital="Fredricton", largest='Moncton', population=789225)
manitoba = dict(capital="Winnipeg", largest="Winnipeg", population=1383765)

canada_list = [ontario, quebec, nova_Scotia, new_Brunswick, manitoba]
total = 0
for item in canada_list:
    # Adding all values of population to receive total population of canada
    total += item.get('population', 0)

print("Total: {}".format(total))

輸出:

Total: 26595816

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM