keys = ['id', 'name', 'address']
list = [{'Value': 1}, {'Value': 'Example name'}, {'VarCharValue': 'GA'}]
寻找最Python方式替换键字典键。我尝试使用for循环和列表索引,但是很丑陋。例外结果:
list = [{'id': 1}, {'name': 'Example name'}, {'address': 'GA'}]
答案 0 :(得分:1)
您可以对zip
使用列表推导。要提取字典d
中的唯一值,可以使用next(iter(d.values()))
或list(d.values())[0]
。
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'}]
答案 1 :(得分:1)
如果您不想使用iter(),则可以使用list(),它看起来与jpp的解决方案几乎一样
res = [{k: list(v.values())[0]} for k,v in zip(K,L)]
在这种情况下,您只需将dict_values对象转换为列表,然后获取第一项,而不是获取迭代器并对其进行下一步调用。