繁体   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