Python 用列表中的值替换字典键
寻找最具python风格的方法来替换dicts键。我尝试了for循环和list索引,但效果很差。例外结果: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':
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'}]