我有一系列字典看起来像这样:
[
{ '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',... { 'country': 'UK',... { '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','Manchester': 'UK'}