2017-01-09 13 views
-1

1つの要素とリストから作成しなければならないリストを使用して辞書を作成しようとしています。これを行う簡単な方法はありますか?もっと効率的ですか?Pythonでリストをマージする辞書を作成する

これは私がこれまで

first_element = 1 
list2 = ['a', 'b', 'c'] 

merged_list = [] 
for item in list2: 
    merged_tuple = (first_element, item) 
    merged_list.append(merged_tuple)   

print (merged_list) 
>>> [(1, 'a'), (1, 'b'), (1, 'c')] 

merged_dict = {value: [(key, value)] for (key, value) in merged_list} 
print (merged_dict) 
>>> {'a': [(1, 'a')], 'c': [(1, 'c')], 'b': [(1, 'b')]} #desired result 

答えて

1

あなたは中間リストをスキップしてちょうど直接マッピングを行うことができます

first_element = 1 
list2 = ['a', 'b', 'c'] 

merged_dict = {item: [(first_element, item)] for item in list2} 
1

をやっている。これはdictionary comprehensionを使用することにより、より神託することができます:

>>> chars = ['a', 'b', 'c'] 
>>> single = 1 
>>> 
>>> {key: [(single, key)] for key in chars} 
{'a': (1, 'a'), 'c': (1, 'c'), 'b': (1, 'b')} 
>>> 

このように、あなたがmerged_listを作成する必要はありませんし、あなたの辞書の作成に直接スキップすることができます。

+0

@MSeifert DERP。見なかった:Pしかし、今は固定;-) –

関連する問題