如何在python中更改dict列表中的键和值?
寻找一个高效的python代码来实现以下功能如何在python中更改dict列表中的键和值?,python,python-3.x,Python,Python 3.x,寻找一个高效的python代码来实现以下功能 input_dir =[{'NAME': 'ABC', 'VALUE': 'USA'}, {'NAME': 'PQR', 'VALUE': 'EU'}] expected_output= {'ABC': 'USA', 'PQR': 'EU'} 我正在使用下面的代码 out_key = '' out_value = '' output_dictionary = {} for index, item in enumerate(input_dir):
input_dir =[{'NAME': 'ABC', 'VALUE': 'USA'}, {'NAME': 'PQR', 'VALUE': 'EU'}]
expected_output= {'ABC': 'USA', 'PQR': 'EU'}
我正在使用下面的代码
out_key = ''
out_value = ''
output_dictionary = {}
for index, item in enumerate(input_dir):
for key in item:
if key == 'NAME':
out_key = item[key]
elif key == 'VALUE':
out_value = item[key]
output_dictionary[out_key] = out_value
print(output_dictionary)
有什么有效的方法可以做到这一点吗?任何建议 实际上只有一行。做如下的词典理解
In [209]: {d["NAME"]:d["VALUE"] for d in input_dir}
Out[209]: {'ABC': 'USA', 'PQR': 'EU'}
实际上只有一行。做如下的词典理解
In [209]: {d["NAME"]:d["VALUE"] for d in input_dir}
Out[209]: {'ABC': 'USA', 'PQR': 'EU'}
我还没有在计算机上测试以下代码,但您应该能够使用lambda函数和迭代输入字典来减少代码:
f = lambda x: (x['NAME'], x['VALUE'])
output_dictionary = dict(f(i) for i in input_dir)
希望这会有所帮助。我还没有在计算机上测试以下代码,但您应该能够使用lambda函数并通过输入字典进行迭代来减少代码:
f = lambda x: (x['NAME'], x['VALUE'])
output_dictionary = dict(f(i) for i in input_dir)
希望有帮助。太好了!!与我冗长的代码相比,这个解决方案真的很简单!谢谢@潘达完美!!与我冗长的代码相比,这个解决方案真的很简单!谢谢@C熊猫