【问题标题】:How to add multiple values to a dictionary key in python? [closed]如何将多个值添加到python中的字典键? [关闭]
【发布时间】:2014-01-02 08:50:00
【问题描述】:

我想将多个值添加到 python 字典中的特定键。我该怎么做?

a = {}
a["abc"] = 1
a["abc"] = 2

这会将 a["abc"] 的值从 1 替换为 2。

我想要的是 a["abc"] 有多个值(1 和 2)。

【问题讨论】:

    标签: python dictionary key


    【解决方案1】:

    将值设为列表,例如

    a["abc"] = [1, 2, "bob"]
    

    更新:

    有几种方法可以为键添加值,如果还没有列表,则可以创建一个列表。我将逐步展示一种这样的方法。

    key = "somekey"
    a.setdefault(key, [])
    a[key].append(1)
    

    结果:

    >>> a
    {'somekey': [1]}
    

    接下来,试试:

    key = "somekey"
    a.setdefault(key, [])
    a[key].append(2)
    

    结果:

    >>> a
    {'somekey': [1, 2]}
    

    setdefault 的神奇之处在于它会初始化该键的值如果该键未定义,否则它什么也不做。现在,请注意 setdefault 返回键,您可以将它们组合成一行:

    a.setdefault("somekey",[]).append("bob")
    

    结果:

    >>> a
    {'somekey': [1, 2, 'bob']}
    

    您应该查看dict 方法,尤其是get() 方法,并做一些实验来熟悉它。

    【讨论】:

    • 看看发布的时间 - 我们都在完全相同的时间给出了相同的答案,直到第二个:)
    • 我要一个一个添加。
    • 就像我为函数提供键和值一样。如果 key 已经存在,那么它应该将新值附加到 key。
    • 你可以检查 type(a["abc"]) == list.如果没有,则创建一个新列表,将该项目作为该列表中的第一个元素。
    • 谢谢,真的很喜欢 a.setdefault("somekey",[]).append("bob")
    【解决方案2】:

    怎么样

    a["abc"] = [1, 2]
    

    这将导致:

    >>> a
    {'abc': [1, 2]}
    

    这就是你要找的吗?

    【讨论】:

    • 我要一一添加。像 a["abc"] = 1 和 a["abc"]="def"
    • @user1162512 a["abc"].append("def")
    • 如果我不想使用该列表怎么办。我还可以附加值吗?例如:我有一个 dict a["abc":1]。现在我想将“def”添加到“abc”键。我该怎么做?
    • @user1162512 如果您想为某个键设置多个值,那么您需要使用列表或其他容器来存储多个值(另一个字典、元组等) .你不能这样做 {"abc": 1, 2} 因为 dict 是一个键:值对,每个键只有一个值。
    • 我们是双胞胎 :)
    猜你喜欢
    • 2017-01-04
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 2023-03-31
    • 2018-03-22
    • 2022-01-18
    • 1970-01-01
    相关资源
    最近更新 更多