我有数据:
({'name': 'bob', 'sex': 'male'}, {'name': 'sally', 'sex': 'female'})
我想要
{'bob': 'male', 'sally': 'female'}
这是一种快速,简单的方法吗?数据始终是具有相同键/值对的dicts的n长度元组。
答案 0 :(得分:3)
你使用dict理解:
{d['name']: d['sex'] for d in input_structure}
这会产生一个字典,其中的键和值取自输入字典中的两个键。
如果您使用的是Python 2.6或更早版本,则必须使用生成器表达式进行dict()
调用:
dict((d['name'], d['sex']) for d in input_structure)
演示:
>>> sample = ({'name': 'bob', 'sex': 'male'}, {'name': 'sally', 'sex': 'female'})
>>> {d['name']: d['sex'] for d in sample}
{'bob': 'male', 'sally': 'female'}
>>> dict((d['name'], d['sex']) for d in sample)
{'bob': 'male', 'sally': 'female'}
答案 1 :(得分:0)
x = ({'name': 'bob', 'sex': 'male'}, {'name': 'sally', 'sex': 'female'})
print {y['name']:y['sex'] for y in x}
>> {'bob': 'male', 'sally': 'female'}