2016-04-10 17 views
1

次のような辞書構造を'city': 'continent'構造の辞書に変換するにはどうすればいいですか?辞書の配列を1行に連結する

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

このコードは私に答え与える:

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

や辞書の配列を連結するための別の試みは、同様に失敗します:

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'} 

をこれが間違ってい

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

使用しているPythonのバージョンは? –

+0

私はPython 3を使用しています(タグを参照してください) – API

+0

ありがとうございますが、Pythonの3点は何ですか?私が尋ねる理由は、Python 3.5が辞書を結合する新しい方法( '{** x、** y}')を追加したからです。 –

答えて

1

試してみてください(テスト3.5 on):

a = {i: y for x, y in info for i in x} 
関連する問題