寻找有效的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)
有没有有效的方法呢?任何建议!
答案 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)
希望有所帮助。