2016-10-28 11 views
-3

私はgoogleとドキュメントを検索しましたが、(私は推測すると)単純な質問に対する答えを見つけることができません。私は対応するリストにしなければならない。Python 2.7.12:2つのリストを辞書に結合する方法

NAMES = ['Alice', 'Bob', 'Cathy', 'Dan', 'Ed', 'Frank', 
     'Gary', 'Helen', 'Irene', 'Jack', 'Kelly', 'Larry'] 

AGES = [20, 21, 18, 18, 19, 20, 20, 19, 19, 19, 22, 19] 

これらのリストは、AGESがキーである辞書になる必要があります。

これに取り組むための正しい方法は、(シンプルで何
{18: 'Dan', 19: 'Larry', 20: 'Gary', 21: 'Bob', 22: 'Kelly'} 

:私は、プログラムを実行

def combine_lists(list_a, list_b): 
    dictionary = dict() 
    for i in range(len(list_a)): 
     dictionary[list_a[i]] = list_b[i] 
    return dictionary 

print combine_lists(AGES, NAMES) 

は私にこれを提供します。..しかし、それはキーの前の挿入された値を上書きし、機能を書きました)問題?

UPDATE:

私は何をしたいことだけでなく、ダン、私を与えるが、キャシーだけでなく、キー18ように、キーにリンクされている複数の値があるということです。

+2

あなたはすべき結果は、*あなたが*欲しいものを言っていません。 –

+0

私はあなたがdictの値をリストに追加したいと思っています(名前を付け加えます) – UnholySheep

答えて

4

あなたはエントリがリストになりたい場合は...

from collections import defaultdict 

age_name_dict = defaultdict(list) 
for name, age in zip(NAMES, AGES): 
    age_name_dict[age].append(name) 
-2

あなたは、それは、おそらく最も便利かつ迅速な方法です​​

を使用することができます。

+0

オペレーションは、タプルのリストではなく、dictを要求します – UnholySheep

+0

@UnholySheepは、ディクテーションを構築するために使用することができますが、問題。 –

関連する問題