Python 用列表中的值替换字典键

Python 用列表中的值替换字典键,python,python-3.x,list,dictionary,Python,Python 3.x,List,Dictionary,寻找最具python风格的方法来替换dicts键。我尝试了for循环和list索引,但效果很差。例外结果: keys = ['id', 'name', 'address'] list = [{'Value': 1}, {'Value': 'Example name'}, {'VarCharValue': 'GA'}] 您可以将列表理解与zip一起使用。要提取字典d中的唯一值,可以使用next(iter(d.values())或列表(d.values())[0] list = [{'id':

寻找最具python风格的方法来替换dicts键。我尝试了for循环和list索引,但效果很差。例外结果:

keys = ['id', 'name', 'address']

list = [{'Value': 1}, {'Value': 'Example name'}, {'VarCharValue': 'GA'}]

您可以将列表理解与
zip
一起使用。要提取字典
d
中的唯一值,可以使用
next(iter(d.values())
列表(d.values())[0]

list = [{'id': 1}, {'name': 'Example name'}, {'address': 'GA'}]

如果您不想使用iter(),可以使用list(),它看起来与jpp的解决方案几乎相同

res=[{k:list(v.values())[0]}表示zip(k,L)中的k,v]


在这种情况下,您只需将dict_values对象转换为一个列表,并获取第一项,而不是获取迭代器并调用下一项

请注意,不要对内置项进行阴影处理,使用
lst
list
L
代替
list
作为变量名。
[{k:list(d.values()).pop()}表示zip中的k,d(key,lst)]
K = ['id', 'name', 'address']

L = [{'Value': 1}, {'Value': 'Example name'}, {'VarCharValue': 'GA'}]

res = [{k: next(iter(v.values()))} for k, v in zip(K, L)]

[{'id': 1}, {'name': 'Example name'}, {'address': 'GA'}]