Python 3.x 将字典数组连接在一行中
如何将数组结构中的以下词典转换为仅包含一行的带有Python 3.x 将字典数组连接在一行中,python-3.x,Python 3.x,如何将数组结构中的以下词典转换为仅包含一行的带有'city':“continent'结构的词典 info = [ ({'Amsterdam':10,'Berlin':20,'London':30},'Europe'), ({'Hongkong':10,'Beijng':20,'Manila':30},'Asia'), ({'Nairobi':10,'Cape Town':20,'Cairo':30},'Africa') ] 这段代码给了我答案: a = dict() f
'city':“continent'
结构的词典
info = [
({'Amsterdam':10,'Berlin':20,'London':30},'Europe'),
({'Hongkong':10,'Beijng':20,'Manila':30},'Asia'),
({'Nairobi':10,'Cape Town':20,'Cairo':30},'Africa')
]
这段代码给了我答案:
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 = {i:t[1] for i in t[0] for t in info}
另一种连接字典数组的尝试也失败了:
a = dict([{i:t[1] for i in t[0]} for t in info])
试试这个(在3.5上测试):
您使用的是什么版本的Python?我使用的是Python3(见标签)谢谢,但Python3的要点是什么?我问这个问题的原因是Python3.5添加了一种新的加入字典的方式(
{**x,**y}
),我也会接受3.5的答案,因为我总有一天要更新
a = {i: y for x, y in info for i in x}