2016-04-15 2 views
-2

was ist, wenn ich ein Tupel Liste wie folgt aussehen:Convert Liste von Tupeln w/Länge 5 in Python Zum Wörterbuch

list = [('Ana', 'Lisbon', 42195, '10-18', 2224), 
     ('Eva', 'New York', 42195, '06-13', 2319), 
     ('Ana', 'Tokyo', 42195, '02-22', 2403), 
     ('Eva', 'Sao Paulo', 21098, '04-12', 1182), 
     ('Ana', 'Sao Paulo', 21098, '04-12', 1096), 
     ('Dulce', 'Tokyo', 42195, '02-22', 2449), 
     ('Ana', 'Boston', 42195, '04-20', 2187)] 

Wie kann ich dies wie diese in ein Wörterbuch zu konvertieren?

dict = {'Ana': [('Ana', 'Lisboa', 42195, '10-18', 2224),('Ana', 'Toquio',42195, '02-22', 2403), 
     ('Ana', 'Sao Paulo', 21098, '04-12', 1096),('Ana', 'Boston', 42195, '04-20', 2187)], 
     'Dulce': [('Dulce', 'Toquio', 42195, '02-22', 2449)], 
     'Eva': [('Eva', 'Nova Iorque', 42195, '06-13', 2319), 
     ('Eva', 'Sao Paulo', 21098, '04-12', 1182)]} 
+0

nicht dict/Liste als Variablennamen verwenden – Natecat

Antwort

4

Sie können nur Schleife durch die Liste wie folgt aus:

from collections import defaultdict 
combined = defaultdict(list) 
for i in list1: 
    combined[i[0]].append(i) 
-1
lst = [('Ana', 'Lisbon', 42195, '10-18', 2224), 
     ('Eva', 'New York', 42195, '06-13', 2319), 
     ('Ana', 'Tokyo', 42195, '02-22', 2403), 
     ('Eva', 'Sao Paulo', 21098, '04-12', 1182), 
     ('Ana', 'Sao Paulo', 21098, '04-12', 1096), 
     ('Dulce', 'Tokyo', 42195, '02-22', 2449), 
     ('Ana', 'Boston', 42195, '04-20', 2187)] 

dct = {} 

for tp in lst: 
    if tp[0] not in dct.keys(): 
     dct[tp[0]] = [] 
    dct[tp[0]].append(tp) 
print dct