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