簡體   English   中英

如何一次將多個鍵值對添加到字典中?

[英]How to add multiple key-value pair to Dictionary at once?

我有一本字典my_dict有一些元素,如:

my_dict = {
    'India':'Delhi',
    'Canada':'Ottawa',
}

現在我想將多個字典鍵值對添加到dict中,例如:

my_dict = {
    'India': 'Delhi',
    'Canada': 'Ottawa',
    'USA': 'Washington',
    'Brazil': 'Brasilia',
    'Australia': 'Canberra',
}

有什么辦法可以做到這一點? 因為我不想一個接一個地添加元素。

使用update()方法。

d= {'India':'Delhi','Canada':'Ottawa'}
d.update({'USA':'Washington','Brazil':'Brasilia','Australia':'Canberra'})

PS:將字典命名為dict是一個可怕的想法。 它取代了內置的dict

你有幾個選擇:

  1. 使用update()
d= {'India':'Delhi','Canada':'Ottawa'}
d.update({'USA':'Washington','Brazil':'Brasilia','Australia':'Canberra'})
  1. 使用merge
d= {'India':'Delhi','Canada':'Ottawa'}
d2 = {'USA':'Washington','Brazil':'Brasilia','Australia':'Canberra'}
new_dict = d| d2

為了使這個答案部分的內容更有趣,您可以

將多個字典鍵值對添加到字典

這樣做(在 Python 3.5 或更高版本中):

d = {'India': 'Delhi', 'Canada': 'Ottawa'}
d = {**d, 'USA': 'Washington', 'Brazil': 'Brasilia', 'Australia': 'Canberra', 'India': 'Blaa'}

產生一個輸出:

{'India': 'Blaa', 'Canada': 'Ottawa', 'USA': 'Washington', 'Brazil': 'Brasilia', 'Australia': 'Canberra'}

這種替代方案甚至看起來都不是內存效率低下的。 哪一種與“Python 之禪”的假設相矛盾,

應該有一種——最好只有一種——明顯的方法來做到這一點

我不喜歡d.update()替代方案的是圓括號,當我略讀並看到圓括號時,我通常會想到元組。 無論哪種方式,添加此答案只是為了玩得開心。

update() 方法運行良好

作為主要在 pandas 數據幀中工作的人,我想分享如何從數據幀中獲取值並使用 update() 和 pd.to_dict() 將它們添加到字典中。

import pandas as pd

現有字典

my_dict = {
        'India':'Delhi',
        'Canada':'Ottawa',
    }

具有要添加到字典的附加值的數據框

country_index = ['USA','Brazil','Australia']
city_column = ['Washingon','Brasilia','Canberra']
new_values_df = pd.DataFrame(data=city_column, index=country_index, columns=['cities'])

將數據框值添加到字典

my_dict.update(new_values_df.to_dict(orient='dict')['cities'])

字典現在看起來像

my_dict = {
    'India': 'Delhi',
    'Canada': 'Ottawa',
    'USA': 'Washington',
    'Brazil': 'Brasilia',
    'Australia': 'Canberra',
}

暫無
暫無

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

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