2017-01-09 4 views
-1

Ich versuche, ein Wörterbuch aus einer Liste zu erstellen, die ich aus einem Element und einer Liste erstellen muss. Gibt es einen einfacheren Weg dies zu tun, es ist viel effizienter?Erstellen eines Wörterbuchs aus dem Zusammenführen einer Liste in Python

Dies ist, was ich habe

bisher getan
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 

Antwort

1

Sie könnten die Zwischenliste überspringen und nur die Zuordnungen machen direkt:

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

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

Dies wird durch Verwendung eines dictionary comprehension mehr pythonic sein kann:

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

Auf diese Weise brauchen Sie nicht merged_list zu schaffen, und kann direkt zum Erstellen Ihres Wörterbuchs springen.

+0

@MSeifert Derp. Hab das nicht gesehen: P Aber jetzt ist es behoben ;-) –

Verwandte Themen