【问题标题】:Python dictionary append to key?Python字典追加到键?
【发布时间】:2021-01-07 14:28:12
【问题描述】:

我一直在阅读,我认为我想要实现的正确解决方案是字典......

我一直在玩并查看示例,它们似乎是要走的路。我有一个问题。虽然我可以毫无问题地创建键并设置其值,但我无法向现有键添加值。

这是我正在尝试的

dict = {}
...
if key not in dict:
   dict[key] = value
else:
   dict[key].append(value)

它给了我...

AttributeError: 'str' object has no attribute 'append'

如果我使用打印,if else 语句会正确触发。 如果密钥不存在,则添加该密钥。 错误只发生在追加行。

我期望的是每个键的值列表。

谢谢, 克里斯

【问题讨论】:

  • 当 dict 值已经是列表时,您可以这样做。考虑使用 defaultdict(list)。或者您可以在初始分配中完成 dict[key] = [value,]。
  • 只需将您的初始设置更改为“dict[key] = [value]”

标签: python dictionary append


【解决方案1】:

正如@kenny 所说

你要做的就是

from collections import defaultdict

dic = defaultdict(list)

# it creates a list if the key is not in dictionary automatically
dic[key].append(value)

【讨论】:

    【解决方案2】:

    我认为您只需将初始键作为具有一个元素的列表插入:

    dict = {}
    ...
    if key not in dict:
       dict[key]=[value]
    else:
       dict[key].append(value)
    

    这很好用:

    dict={}
    dict["key"]=[1]
    dict["key"].append(2)
    dict 
    
    {'key': [1, 2]}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2012-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-04
      相关资源
      最近更新 更多