1

多数のキーで構成された辞書が必要で、値は多数の文字列を含むリストでなければなりません。(Pythonで)

私は試した:

d1[key].append(value)

しかし、Pythonは次のように述べています。

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

次のようなものが必要です:{a:[b,c,d,e],b:[t,r,s,z]....}

どうすればよいですか?

前もって感謝します。

4

4 に答える 4

5

次を使用できますcollections.defaultdict

>>> from collections import defaultdict
>>>
>>> d = defaultdict(list)
>>> d['key'].append(5)
>>> d
defaultdict(<type 'list'>, {'key': [5]})
>>> dict(d)
{'key': [5]}
于 2013-08-24T17:38:12.307 に答える
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!')
于 2013-08-24T17:37:48.873 に答える
2

リストの辞書がある場合は、次のsetdefaultメソッドを使用できます。

d1.setdefault(key, []).append(value)

しかし、私にとっては、文字列の辞書がありd1[key]、リストではなく文字列を提供しているようです。リストの最初の要素を追加しようとしたときに、次を使用した場合に発生する可能性があります。

d1[key] = value1

キーの辞書の値keyは文字列です。代わりに、次を試してください。

d1[key] = [value1]

appendd1[key] はリストであるため、メソッドを呼び出すことができます

于 2013-08-24T17:41:45.220 に答える
0

追加dictするlist 前に、の要素を作成する必要があります。

d1[key] = []
d1[key].append(value)
于 2013-08-24T17:38:22.653 に答える