如何将键列表和值列表转换为单个字典列表?

2024-04-29 12:00:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个键列表和一个值列表。 我需要做的是用字典将这两个列表转换成一个列表。你知道吗

我有一个关键清单:

keys = ['id','firstname','lastname']

我的价值清单如下:

values = [[23,'abc','gef'],[24,'aabb','ppqq']]

预期输出为:

data = [{'id':23,'firstname':'abc','lastname':'gef'}, {'id':24,'firstname':'aabb','lastname':'ppqq'}]

我将使用一个大的列表作为“值”列表。有没有什么有效的“Python”方法?你知道吗


Tags: 方法id列表data字典keysfirstname关键
3条回答

使用列表理解。 zip()是映射多个容器的相似索引,以便它们可以作为单个实体使用。你知道吗

keys = ['id','firstname','lastname']
value = [[23, 'abc', 'gef'], [24, 'aabb', 'ppqq']]
data = [{k:v for k,v in zip(keys,v)} for v in value ]
print(data)

订单号:

[{'id': 23, 'firstname': 'abc', 'lastname': 'gef'}, {'id': 24, 'firstname': 'aabb', 'lastname': 'ppqq'}]

尝试简单的列表理解:

>>> keys = ['id','firstname','lastname']
>>> values = [[23,'abc','gef'],[24,'aabb','ppqq']]
>>> [dict(zip(keys, value)) for value in values]
[{'id': 23, 'firstname': 'abc', 'lastname': 'gef'}, {'id': 24, 'firstname': 'aabb', 'lastname': 'ppqq'}]

单行程序应该是data = [{k:v for k, v in zip(keys, v)} for v in values],它结合了list comp和dict comp

>>> keys =['id','name1','name2']
>>> values = [[23, 'a','g'],[24,'ab','cc']]
>>> data = [{k:v for k, v in zip(keys, v)} for v in values]
>>> data
[{'id': 23, 'name1': 'a', 'name2': 'g'}, {'id': 24, 'name1': 'ab', 'name2': 'cc'}]

相关问题 更多 >