そのような方法で辞書を作成する必要がある理由はありますか? 簡単に定義できます
d = {'string': [('a', 'b'), ('c', 'd'), ('e', 'f')], 'string2': [('a', 'b'), ('z', 'x')]}
新しいエントリが必要な場合:
d['string3'] = [('a', 'b'), ('k', 'l')]
また、リストの 1 つにタプルを追加する場合は、次のようにします。
d['string2'].append(('e', 'f'))
質問がより明確になったので、ループを使用して辞書を作成するだけです。リストのキーを事前に知っていると仮定しますkeys
。
d = {}
for k in keys:
d[k] = []
# Now you can append your tuples if you know them. For instance:
# d[k].append(('a', 'b'))
最初に辞書を作成したいだけの場合は、辞書内包表記もあります。
d = {k: [] for k in keys}
答えてくれてありがとう。しかし、defaultdict を使用してこれを行う方法はありますか?
from collections import defaultdict
d = defaultdict(list)
for i in 'string1','string2':
d[i].append(('a','b'))
または、次を使用できますsetdefault
。
d = {}
for i in 'string1','string2':
d.setdefault(i, []).append(('a','b'))