【发布时间】:2021-02-08 03:17:20
【问题描述】:
我正在尝试将值附加到字典中已存在的键。
我遇到了这个 SO 链接 How do I append a value to dict key? (AttributeError: 'str' object has no attribute 'append'),但是在这种特殊情况下,值是整数,而在我的情况下,值是字符串。
我想要的是:
mydict = {'ADE':'AD', 'RS':'S'}
key1 = 'ADE'
value1 = 'AE'
if key1 in mydict:
mydict[key1].append(value1)
else:
mydict[key1] = value1
我想追加到mydict['ADE'],使其等于['AD','AE']。
但是,这会生成一个AttributeError: 'str' object has no attribute 'append'
我什至尝试了以下方法:
from collections import defaultdict
d = defaultdict(list)
mydict = {'ADE':'AD', 'RS':'S'}
for key, value in mydict.items():
d[key] = value
d 然后 = defaultdict(list, {'ADE': 'AD', 'RS': 'S'})
然后我运行以下命令:
key1 = 'ADE'
value1 = 'AE'
if key1 in d:
d[key1].append(value1)
else:
d[key1] = value1
但我得到同样的错误:AttributeError: 'str' object has no attribute 'append'
【问题讨论】:
-
defaultdict仅对 missing 键使用默认工厂,例如d['ADE']已经存在,因此您只需获取值'AD'。如果您希望所有键都是列表,请将{'ADE': 'AD', 'RS': 'S'}更改为{'ADE': ['AD'], 'RS': ['S']}。 -
糟糕。我真是个笨蛋。谢谢这一切,现在一切都说得通了。试图追加到字符串而不是列表。
标签: python python-3.x dictionary append