如何在python中将一对添加到字典中?

Posted

技术标签:

【中文标题】如何在python中将一对添加到字典中?【英文标题】:How to add a pair to a dictionary in python? 【发布时间】:2015-07-02 02:37:35 【问题描述】:

我创建了以下字典:d =

我添加了一个新键和一对作为对应的d['Key1'] = (1, 2)

如果我打印字典

 'Key1': (1, 2) 

如何将另一对整数添加到以下字典中的以下键中,以便拥有

 'Key1': (1, 2), (1, 3), (1, 4)

可以在 Python 中实现吗?如果是,我该怎么做?

我还可以计算与特定键对应的值的数量吗?

【问题讨论】:

一个键不能有三个值。但是,您可以将一个包含三个元组的元组作为您的值。 【参考方案1】:

你不能直接做;换句话说,dict 不能保存与同一个键关联的多个值。您需要有一个 dictlists。

如果事先不知道这组密钥,您可能需要使用defaultdict,它会在您每次访问一个不存在的密钥时自动创建一个list(或其他)字典。

d = collections.defaultdict(list)

要添加元素,您可以使用

d['Key1'].append((1, 2))

而不是

d['Key1'] = (1, 2)

这让您避免编写特殊代码来处理使用给定键的第一次插入。

【讨论】:

我的收藏有问题,我收到以下错误:d = collections.defaultdict(list) NameError: name 'collections' is not defined。我该如何避免呢? 你必须先import collections。 (我认为这是隐含的。)【参考方案2】:

可以,但您需要为您的值使用容器。

例如你可以使用一个列表,如果你的键有多个值,你也可以使用dict.setdefault方法进行赋值,这对于你想添加另一个具有多个值的键很有用:

>>> d = 
>>> d.setdefault('Key1',[]).append((1,2))
>>> d
'Key1': [(1, 2)]
>>> d['Key1'].append((1, 3))
>>> d
'Key1': [(1, 2), (1, 3)]
>>> d.setdefault('Key2',[]).append((4,2))
>>> d
'Key2': [(4, 2)], 'Key1': [(1, 2), (1, 3)]

setdefault(key[, default])

如果键在字典中,则返回其值。如果不是,则插入值为默认值的键并返回默认值。默认默认为无。

【讨论】:

我想使用字典,因为我有很多键,而不仅仅是一个。即使在列表中也有可能吗? @user1680944 是的,有可能,您可以使用任何类型的 python 数据结构或对象作为字典值!【参考方案3】:

只有将初始条目设为列表时才有可能。

D['key'] = []
D['key'].append((1,2))
D['key'].append((3,4))

'Key': [(1,2), (3,4)] 

【讨论】:

以上是关于如何在python中将一对添加到字典中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中将键值对添加到类型为 [String:AnyObject] 的字典中?

如何将 Numpy 数组添加到字典中

如何在django中将python字典动态输出到html?

如何在 python3 中将 OrderedDict 转换为常规字典

如何在 Python 中将 JSON 字符串转换为字典?

如何在Python中将变量传入和传出函数[重复]