我需要一个由很多键组成的字典,并且值必须是一个包含很多字符串的列表。(在 Python 中)
我试过:
d1[key].append(value)
但 Python 说:
AttributeError: 'str' object has no attribute 'append'.
我需要类似的东西:{a:[b,c,d,e],b:[t,r,s,z]....}
我能做什么?
提前致谢。
我需要一个由很多键组成的字典,并且值必须是一个包含很多字符串的列表。(在 Python 中)
我试过:
d1[key].append(value)
但 Python 说:
AttributeError: 'str' object has no attribute 'append'.
我需要类似的东西:{a:[b,c,d,e],b:[t,r,s,z]....}
我能做什么?
提前致谢。
您可以使用collections.defaultdict
:
>>> from collections import defaultdict
>>>
>>> d = defaultdict(list)
>>> d['key'].append(5)
>>> d
defaultdict(<type 'list'>, {'key': [5]})
>>> dict(d)
{'key': [5]}
试试这个:
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!')
如果你有一个列表字典,你可以使用setdefault
方法:
d1.setdefault(key, []).append(value)
但对我来说,看起来你有字符串字典,并d1[key]
给你字符串而不是列表。如果当您尝试添加列表的第一个元素时,可能会发生这种情况:
d1[key] = value1
现在键的字典值key
是字符串。相反,尝试:
d1[key] = [value1]
然后你可以调用append
方法,因为 d1[key] 是列表
您需要在追加之前dict
创建as a的元素。list
d1[key] = []
d1[key].append(value)