python 将字典数组映射到字典?
python map array of dictionaries to dictionary?
我有一组字典,如下所示:
[
{ 'country': 'UK', 'city': 'Manchester' },
{ 'country': 'UK', 'city': 'Liverpool' },
{ 'country': 'France', 'city': 'Paris' } ...
]
我想最终得到这样一本字典:
{ 'Liverpool': 'UK', 'Manchester': 'UK', ... }
显然我可以做到:
d = {}
for c in cities:
d[c['city']] = c['country']
但是有什么方法可以用单线地图来实现吗?
您可以使用 dict comprehension :
>>> li = [
... { 'country': 'UK', 'city': 'Manchester' },
... { 'country': 'UK', 'city': 'Liverpool' },
... { 'country': 'France', 'city': 'Paris' }
... ]
>>> {d['city']: d['country'] for d in li}
{'Paris': 'France', 'Liverpool': 'UK', 'Manchester': 'UK'}
或者我们 operator.itemgetter
和 map
函数:
>>> dict(map(operator.itemgetter('city','country'),li))
{'Paris': 'France', 'Liverpool': 'UK', 'Manchester': 'UK'}
我有一组字典,如下所示:
[
{ 'country': 'UK', 'city': 'Manchester' },
{ 'country': 'UK', 'city': 'Liverpool' },
{ 'country': 'France', 'city': 'Paris' } ...
]
我想最终得到这样一本字典:
{ 'Liverpool': 'UK', 'Manchester': 'UK', ... }
显然我可以做到:
d = {}
for c in cities:
d[c['city']] = c['country']
但是有什么方法可以用单线地图来实现吗?
您可以使用 dict comprehension :
>>> li = [
... { 'country': 'UK', 'city': 'Manchester' },
... { 'country': 'UK', 'city': 'Liverpool' },
... { 'country': 'France', 'city': 'Paris' }
... ]
>>> {d['city']: d['country'] for d in li}
{'Paris': 'France', 'Liverpool': 'UK', 'Manchester': 'UK'}
或者我们 operator.itemgetter
和 map
函数:
>>> dict(map(operator.itemgetter('city','country'),li))
{'Paris': 'France', 'Liverpool': 'UK', 'Manchester': 'UK'}