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

Python辞書でゼロ以外の値の平均を見つける方法は?


これを行うには、辞書を繰り返し処理し、最初にゼロ値を除外します。次に、フィルタリングされた値の合計を取ります。最後に、これらのフィルタリングされた値の数で割ります。

my_dict = {"foo": 100, "bar": 0, "baz": 200}
filtered_vals = [v for _, v in my_dict.items() if v != 0]
average = sum(filtered_vals) / len(filtered_vals)
print(average)
出力 これにより出力が得られます-

150.0

reduceを使用することもできますが、このような単純なタスクの場合、それはやり過ぎです。また、リスト内包表記を使用するよりもはるかに読みにくくなります。


  1. 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)

  2. Pythonで辞書のすべてのキーを印刷するにはどうすればよいですか?

    辞書オブジェクトには、この仕事をしてくれるkeys()メソッドがあります。 >>> D1 = {1:a, 2:b,3:c} >>> D1.keys() dict_keys([1, 2, 3]) >>> list(D1.keys()) [1, 2, 3] 反復可能なリストオブジェクトは、forループを使用してトラバースできます >>> L1 = list(D1.keys()) >>> for i in L1: print (i) 1 2 3