如何在python中更改dict列表中的键和值?

如何在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):

寻找一个高效的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):
   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熊猫