2016-04-10 24 views
1

Aşağıdaki sözlükleri dizili yapıyı, bir satırda 'city': 'continent' yapılı bir sözlüğe nasıl dönüştürebilirim?Bir satırdaki sözlükler dizisini birleştirin

info = [ 
    ({'Amsterdam':10,'Berlin':20,'London':30},'Europe'), 
    ({'Hongkong':10,'Beijng':20,'Manila':30},'Asia'), 
    ({'Nairobi':10,'Cape Town':20,'Cairo':30},'Africa') 
] 

Bu kod bana cevap verir:

a = {i:t[1] for i in t[0] for t in info} 

Ve başka bir girişimde, sözlükler dizisini bitiştirmek için de başarısız:

a = dict() 
for t in info: 
    for i in t[0]: 
     a[i]=t[1] 

{'Amsterdam': 'Europe', 
'Beijng': 'Asia', 
'Berlin': 'Europe', 
'Cairo': 'Africa', 
'Cape Town': 'Africa', 
'Hongkong': 'Asia', 
'London': 'Europe', 
'Manila': 'Asia', 
'Nairobi': 'Africa'} 

Bu yanlıştır

a = dict([{i:t[1] for i in t[0]} for t in info]) 
+0

Hangi versiyonda Python kullanıyorsunuz? –

+0

Python 3 kullanıyorum (etikete bakın) – API

+0

Teşekkürler, ama Python 3 ne anlama geliyor? Sormamın nedeni, Python 3.5'ın yeni bir sözlük ekleme yöntemi eklediğidir ('{** x, ** y}'). –

cevap

1

bunu deneyin (test edin) editör 3.5):

a = {i: y for x, y in info for i in x} 
İlgili konular