Pythonで辞書内のすべての値を乗算する方法
辞書内のすべての要素(値)を乗算したい場合は、辞書のキーを順番に走査しながら、各値をそれまでの積に掛けていくことで求めることができます。最終的に得られた値が出力となります。
なお、辞書とはキーと値のペアから構成されるデータ構造のことです。
サンプルコード
以下に具体的な実装例を示します。
my_dict = {'Jane':99,'Will':54,'Mark':-3}
my_result = 2
for key in my_dict:
my_result = my_result * my_dict[key]
print("辞書内の値を乗算した結果は : ")
print(my_result)実行結果
辞書内の値を乗算した結果は : -32076
コードの解説
- まず、複数のキーと値を持つ辞書を定義します。
- 次に、積を格納するための変数に初期値を代入します。
- forループによって、辞書の各キーを順番に取り出します。
- 各ステップで、キーに対応する値を変数の現在の値と掛け合わせます。
- 計算結果は同じ変数に再代入され、更新されていきます。
- ループが完了した時点での変数の値が、コンソールに出力されます。
別の方法:math.prodを使う
Python 3.8以降では、標準ライブラリのmath.prod関数を使用することで、より簡潔に記述できます。
import math
my_dict = {'Jane':99,'Will':54,'Mark':-3}
my_result = math.prod(my_dict.values())
print(my_result) # -32076my_dict.values()で辞書のすべての値を取得し、math.prodに渡すことで一括して積を計算できます。ループを自分で書く必要がないため、コードの可読性が向上します。
-
Pythonで木構造グラフにおける都市の最大人口を求めるプログラム
国をN個のノードとN-1本の辺からなる木構造として表現することを考えます。各ノードは町を表し、各辺は道路を表します。サイズN-1のリストsourceとdestが与えられ、i番目の道路はsource[i]とdest[i]を双方向に結んでいます。また、サイズNのリストpopulationも与えられ、population[i]はi番目の町の人口を表します。 ここで、いくつかの町を「都市」へアップグレードすることを考えます。ただし、以下の条件を満たす必要があります。 2つの都市が互いに隣接してはならない 町に隣接するすべてのノードは都市でなければならない(すべての道路は必ず町と都市をつなぐ) こ
-
Pythonで辞書(dict)のすべてのキーを取得・表示する方法
Pythonでは、辞書(dict)オブジェクトが持つ keys() メソッドを使うことで、すべてのキーを簡単に取得できます。このメソッドは辞書内の全キーを含むビューオブジェクト(dict_keys)を返します。 keys() メソッドでキーを取得する まずは基本的な使い方を見てみましょう。次の例では、3つのキーと値を持つ辞書から、すべてのキーを取り出しています。 >>> D1 = {1:a, 2:b, 3:c} >>> D1.keys() dict_keys([1, 2, 3]) >>> list(D1.keys()) [1, 2, 3]