Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python-指定された辞書から負の値をフィルタリングします


データ分析の一環として、辞書から負の値を削除するシナリオに出くわします。このために、ディクショナリ内の各要素をループし、条件を使用して値をチェックする必要があります。これを実現するには、以下の2つのアプローチを実装できます。

forループの使用

Wは、forループを使用してリストの要素をループするだけです。すべての反復で、items関数を使用して、要素の値を0と比較し、負の値をチェックします。

dict_1 = {'x':10, 'y':20, 'z':-30, 'p':-0.5, 'q':50}

print ("Given Dictionary :", str(dict_1))

final_res_1 = dict((i, j) for i, j in dict_1.items() if j >= 0)

print("After filtering the negative values from dictionary : ", str(final_res_1))

出力

上記のコードを実行すると、次の結果が得られます。

Given Dictionary : {'x': 10, 'y': 20, 'z': -30, 'p': -0.5, 'q': 50}
After filtering the negative values from dictionary : {'x': 10, 'y': 20, 'q': 50}

ラムダ関数の使用

構文を短く明確にするためにラムダ関数を使用します。この場合、上記と同じロジックを実装しますが、代わりにラムダ関数を使用します。

dictA = {'x':-4/2, 'y':15, 'z':-7.5, 'p':-9, 'q':17.2}

print ("\nGiven Dictionary :", dictA)

final_res = dict(filter(lambda k: k[1] >= 0.0, dictA.items()))

print("After filtering the negative values from dictionary : ", str(final_res))

出力

上記のコードを実行すると、次の結果が得られます。

Given Dictionary : {'x': -2.0, 'y': 15, 'z': -7.5, 'p': -9, 'q': 17.2}
After filtering the negative values from dictionary : {'y': 15, 'q': 17.2}

  1. Python辞書からすべてのキーのリストを取得するにはどうすればよいですか?

    辞書からすべてのキーのリストを取得するには、dict.keys()関数を使用するだけです。 例 my_dict = {'name': 'TutorialsPoint', 'time': '15 years', 'location': 'India'} key_list = list(my_dict.keys()) print(key_list) 出力 これにより、出力が得られます- ['name', 'time', 'location'] リスト内

  2. Pythonで辞書のすべての値を出力するにはどうすればよいですか?

    辞書オブジェクトは、この仕事をしてくれるvalues()メソッドを持っています。 >>> D1 = {1:a, 2:b, 3:c} >>> D1.values() dict_values([a, b, c]) >>> list(D1.values()) [a, b, c] 辞書のkeys()メソッドによって返されるキーのlidtを反復処理することによって、対応する値を取得することもできます >>> L1 = list(D1.keys()) >>> for i in L1: print (i)