2016-04-15 11 views
0

以下の機能を実現する効率的なPythonコードを探しています。PythonのdictのリストでKeyとValueを変更するには?

以下のコードを使用しています。

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) 

効率的な方法はありますか?助言がありますか!

答えて

3

実際にはちょうど1ライナーです。辞書の理解を次のように行います。

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

完璧!私の長年のコードと比較して、本当にシンプルなソリューション!ありがとう。 @Cパンダ – Pradeep

1

私はまだコンピュータ上で、次のコードをテストしていませんが、あなたは可能なラムダ関数を使用して、コードを削減し、入力された辞書を反復処理する必要があります。

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

お役に立てば幸いです。

+0

ああ、Cパンダのようにパンチに私を打つ... –

+0

うん..これも.. ..ありがとう! @光 – Pradeep

関連する問題