我需要一个由很多键组成的字典,值必须是包含大量字符串的列表。 (在Python中)
我试过了:
d1[key].append(value)
但是Python说:
AttributeError: 'str' object has no attribute 'append'.
我需要这样的内容:{a:[b,c,d,e],b:[t,r,s,z]....}
我该怎么办?
提前感谢。
答案 0 :(得分:4)
您可以使用collections.defaultdict
:
>>> from collections import defaultdict
>>>
>>> d = defaultdict(list)
>>> d['key'].append(5)
>>> d
defaultdict(<type 'list'>, {'key': [5]})
>>> dict(d)
{'key': [5]}
答案 1 :(得分:2)
试试这个:
d1['something'] = []
d1['something'].append('a string')
d1['something'].append('another string')
d1['another'] = []
d1['another'].append('woohoo!')
或者,使用defauldict
:
from collections import defaultdict
d1 = defaultdict(list)
d1['something'].append('a string')
d1['something'].append('another string')
d1['another'].append('woohoo!')
或者,使用setdefault
:
d1 = {}
d1.setdefault('something', []).append('a string')
d1.setdefault('something', []).append('another string')
d1.setdefault('another', []).append('woohoo!')
答案 2 :(得分:2)
如果您有列表字典,可以使用setdefault
方法:
d1.setdefault(key, []).append(value)
但对我来说,看起来你有字符串字典,d1[key]
给你字符串而不是列表。如果您尝试添加列表的第一个元素,则可能会发生这种情况:
d1[key] = value1
现在键key
的字典值是字符串。
相反,试试:
d1[key] = [value1]
然后你可以调用append
方法,因为d1 [key]是list
答案 3 :(得分:0)
您需要在追加之前将dict
的元素创建为list
。
d1[key] = []
d1[key].append(value)