2016-10-28 179 views
-3

我搜索了谷歌和文檔,但我無法找到答案(我猜)簡單的問題。我必須要相應的列表。Python 2.7.12:如何將兩個列表合併爲一個字典

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是關鍵字的字典。我寫了一個功能,但是它覆蓋在按鍵前面插入值..

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) 

執行程序使我這個:

{18: 'Dan', 19: 'Larry', 20: 'Gary', 21: 'Bob', 22: 'Kelly'} 

什麼是正確的方式來解決這個(簡單)問題?

UPDATE:

我要的是有鏈接到一個關鍵多個值,從而使按鍵18給我不僅丹,但徐子淇爲好。

+2

你還沒說你*想要*的結果是。 –

+0

我認爲你想在字典中的值是名單(你追加名稱) – 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

OP想要一個字典,而不是元組列表 – UnholySheep

+0

@UnholySheep可以用來構造一個字典,但不會解決OP的問題。 –

相關問題