使用键值对将元组的元组转换为字典

时间:2019-05-25 22:29:40

标签: python list dictionary tuples

我有以下元组元组:

tuples=((32, 'Network architectures', 5), (33, 'Network protocols', 5))

如何将其变成这样的字典列表

dict=[ {"id": 32, "name": "Network architectures", "parent_id": 5}, {"id": 33, "name": "Network protocols", "parent_id": 5}]

3 个答案:

答案 0 :(得分:7)

按以下方式使用列表理解。首先创建一个键列表,该键列表将对所有元组重复。然后只需使用zip来创建单个词典。

tuples=((32, 'Network architectures', 5), (33, 'Network protocols', 5))

keys = ["id", "name", "parent_id"]

answer = [{k: v for k, v in zip(keys, tup)} for tup in tuples]
# [{'id': 32, 'name': 'Network architectures', 'parent_id': 5},
#  {'id': 33, 'name': 'Network protocols', 'parent_id': 5}]

答案 1 :(得分:6)

您可以使用列表理解:

[{'id': t[0], 'name': t[1], 'parent_id': t[2]} for t in tuples]

给出:

[{'id': 32, 'name': 'Network architectures', 'parent_id': 5},
 {'id': 33, 'name': 'Network protocols', 'parent_id': 5}]

答案 2 :(得分:1)

使用lambda函数

tuples=((32, 'Network architectures', 5), (33, 'Network protocols', 5))
dicts = list(map(lambda x:{'id':x[0],'name':x[1], 'parent_id':x[2]}, tuples))
print(dicts)

输出

[ {"id": 32, "name": "Network architectures", "parent_id": 5}, {"id": 33, "name": "Network protocols", "parent_id": 5}]