質問: 'c' print(a[1]) # prints: ['a', 'b'] print(a[2]) # prints: ['c']
回答: そのようなことは標準ライブラリにはありません。ただし、 defaultdict を使用できます。>>> from collections import defaultdict >>> md = defaultdict(list) >>> md[1].append('a') >>> md[1].append('b') >>> md[2].append('c') >>> md[1] ['a', 'b'] >>> md[2] ['c'] (listの代わりにsetを使用できます。この場合、.addの代わりに.appendを呼び出します。)余談として:書いた次の2行を見てください:a[1] = 'a' a[1] = 'b' これは、式a[1]を2つの異なる値に等しくすることを示しているようです。辞書はキーが一意であり、それぞれが単一の値に関連付けられているため、これは不可能です。ただし、canでできることは、特定のキーに関連付けられたリスト内のすべての値を1つずつ抽出することです。 iter を使用し、その後に next を連続して呼び出すことができます。または、2つのループを使用できます。>>> for k, v in md.items(): ... for w in v: ... print("md[%d] = '%s'" % (k, w)) ... md[1] = 'a' md[1] = 'b' md[2] = 'c'