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