把dicts的元组变成单个字典

时间:2014-08-22 20:13:06

标签: python dictionary tuples

我有数据:

({'name': 'bob', 'sex': 'male'}, {'name': 'sally', 'sex': 'female'})

我想要

{'bob': 'male', 'sally': 'female'}

这是一种快速,简单的方法吗?数据始终是具有相同键/值对的dicts的n长度元组。

2 个答案:

答案 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'}