如何更改python中dict列表中的Key和Value?

时间:2016-04-15 20:38:13

标签: 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):
   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)

有没有有效的方法呢?任何建议!

2 个答案:

答案 0 :(得分:3)

实际上只是一个班轮。字典理解如下。

In [209]: {d["NAME"]:d["VALUE"] for d in input_dir}
Out[209]: {'ABC': 'USA', 'PQR': 'EU'}

答案 1 :(得分:1)

我还没有在计算机上测试过以下代码,但您应该能够使用lambda函数减少代码并迭代输入字典:

 f = lambda x: (x['NAME'], x['VALUE'])
output_dictionary = dict(f(i) for i in input_dir)

希望有所帮助。