我有两个列表:
header = ["Name", "Age"]
detail = ["Joe", 22, "Dave", 43, "Herb", 32]
并想创建一个这样的字典列表:
[{"Name": "Joe", "Age": 22}, {"Name": "Dave", "Age": 32}, {"Name": "Herb", "Age": 32}]
这个方法zip让我部分到达那里,但只将第一组值添加到字典中:
>>> dict(zip(header, detail))
{'Age': 22, 'Name': 'Joe'}
如何将 detail
列表中的所有值输出为一个字典?我找到了这个 answer ,但这取决于包含嵌套列表的 detail
。
最佳答案
>>> detail = ["Joe", 22, "Dave", 43, "Herb", 32]
>>> d = dict(zip(detail[::2], detail[1::2]))
>>> d
{'Herb': 32, 'Dave': 43, 'Joe': 22}
对于您新的/编辑过的问题:
>>> d = [dict(zip(header, items)) for items in zip(detail[::2],detail[1::2])]
>>> d
[{'Age': 22, 'Name': 'Joe'}, {'Age': 43, 'Name': 'Dave'}, {'Age': 32, 'Name': 'H
erb'}]
关于python - 从键列表和多个值创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12692135/