如何在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
不能保存与同一个键关联的多个值。您需要有一个 dict
或 list
s。
如果事先不知道这组密钥,您可能需要使用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] 的字典中?