如何一次向字典中添加多个键值对?

15

我有一个字典my_dict,其中包含以下一些元素:

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

现在我想向一个dict添加多个键值对,例如:

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

有没有可能以其他方式实现这个目标?因为我不想一个接着一个地添加元素。


5
dict.update({'India': 'Delhi', 'Canada': 'Ottawa'}) - Aran-Fey
4个回答

21

使用update()方法。

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

注意:将您的字典命名为dict是一个糟糕的想法。这会替换内置的dict


3
为了使这个答案部分更加有趣,您可以通过以下方法向字典添加多个键值对(在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() 这种替代方法中的圆括号,当我快速浏览并看到圆括号时,我通常会认为这是元组。 无论如何,我添加了这个答案只是为了好玩。


1

你有几个选项:

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

使用merge函数:
d= {'India':'Delhi','Canada':'Ottawa'}
d2 = {'USA':'Washington','Brazil':'Brasilia','Australia':'Canberra'}
new_dict = d| d2

0

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',
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接