2016-09-22 6 views
0

私は常にディクショナリがPythonで奇妙なものであると感じました。私はそれが私だけであることを知っている私は確信していますが、私はどのように2つのリストを取るし、dictにそれらを追加することができません。両方のリストがマップ可能な場合は、dictionary = dict(zip(list1, list2))のような問題はありません。しかし、実行するたびにlist1には常に1つの項目があり、list2には複数の項目または単一の項目があり、値として使用できます。2つの非同期リストを辞書に追加する

どのようにして、キーと複数の値を追加することができますか?

いくつかの審議の後、Kasramvdの2番目のオプションは、このシナリオのために働くようだ:あなたのコメントに基づいて

dictionary.setdefault(list1[0], []).append(list2)

+2

潜在的な鍵はどのように見えますか? –

+0

いくつかのxmlを解析し、潜在的に複数の値が見つかる可能性があると識別された各キーにコードを表示できますが、一度に1つのキーが常に存在します。 – iNoob

+0

両方を1つのリストに拡張しますか?入力と期待される出力を追加する必要がありますが、それはあなたが望むものが明確でないためです。 –

答えて

2

あなたが必要とするすべては、最初のリストの唯一の項目に値として第二のリストを割り当てています。重複したキーの値を保持したい場合は

d = {} 
d[list1[0]] = list2 

そして、あなたは、重複キーのためのリストのリストの値を作成するためにdict.setdefault()を使用することができます。

d = {} 
d.setdefault(list1[0], []).append(list2) 
+0

これは 'list2'からすべての項目を追加していないようです。病気は上記と結果を含めるように私の質問を修正します。 – iNoob

+0

それはあなたの2番目のオプションがトリックを完了したようです。最初のものは期待通りに機能せず、2番目のリストに最初のimだけを追加しました。 – iNoob

関連する問題