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

我创建了以下字典:d = {}

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

如果我打印字典

{ 'Key1': (1, 2) }

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

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

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

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

【问题讨论】:

  • 一个键不能有三个值。但是,您可以将一个包含三个元组的元组作为您的值。

标签: python-3.x dictionary append


【解决方案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)] }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 2022-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-08
    • 2022-01-23
    相关资源
    最近更新 更多