Python|辞書の値を取得する:values()

スポンサーリンク

1. はじめに

Pythonのプログラミングにおいて辞書(dictionary)は非常によく使われるデータ型です。キーと値のペアでデータを管理できるため、設定情報やデータの対応関係を表すのに便利です。
本記事では、Pythonの辞書から値を取得する方法として values() メソッドを解説します。
「辞書のキーはわかるけど、値だけ取り出したい」というシーンは実務でも多く発生します。本記事を通して、values()の基本から応用までを理解できるようになります。

 

2. Pythonの辞書とvalues()の基本解説

辞書(dict)はキーと値をセットで持ちますが、values()を使うことで「値」だけをまとめて取得することができます。
まずは基本的な例を見てみましょう。

# 辞書を定義
person = {"name": "Alice", "age": 25, "city": "Tokyo"}

# values()で値を取得
values = person.values()

print(values)
print(list(values))  # リストに変換

実行結果:

dict_values(['Alice', 25, 'Tokyo'])
['Alice', 25, 'Tokyo']

values()を実行すると、dict_values というオブジェクトが返されます。これはリストのように扱えますが、完全なリストではありません。必要に応じて list() でリスト型に変換しましょう。

values()で得られるデータ型

values() が返すのは dict_values というビューオブジェクトです。ビューとは「辞書の値をリアルタイムで参照できる」仕組みで、辞書が変更されるとビューの内容も自動的に更新されます。

data = {"a": 1, "b": 2}
vals = data.values()
print(vals)  # dict_values([1, 2])

# 辞書を更新
data["c"] = 3
print(vals)  # dict_values([1, 2, 3]) → 自動で更新される

実行結果:

dict_values([1, 2])
dict_values([1, 2, 3])

 

3. 辞書のvalues()のよくある使い方・応用例

3-1. for文で繰り返し処理

辞書の値だけを順番に処理したいときは、for文と組み合わせます。

scores = {"Alice": 85, "Bob": 92, "Charlie": 78}

# 値をループで処理
for score in scores.values():
    print(score)

実行結果:

85
92
78

このように、キーは不要で値だけを扱いたいときに便利です。

3-2. 辞書の値の合計や平均を計算する

数値が値として入っている辞書なら、sum()len()と組み合わせることで合計や平均を求められます。

scores = {"Alice": 85, "Bob": 92, "Charlie": 78}

# 合計点
total = sum(scores.values())

# 平均点
average = total / len(scores)

print("合計:", total)
print("平均:", average)

実行結果:

合計: 255
平均: 85.0

3-3. 値が存在するかどうかを調べる

特定の値が辞書に含まれているかを調べたいとき、in演算子を使います。

person = {"name": "Alice", "age": 25, "city": "Tokyo"}

# 値が存在するかチェック
print("Alice" in person.values())  # True
print("Bob" in person.values())    # False

実行結果:

True
False

3-4. 重複のない値を取り出す(setに変換)

辞書の値に重複がある場合、set()を使えば重複を排除できます。

data = {"x": 1, "y": 2, "z": 1, "w": 3}

unique_values = set(data.values())
print(unique_values)

実行結果:

{1, 2, 3}

このテクニックはデータ処理や分析で役立ちます。

 

4. 辞書のvalues()の注意点・エラー対策

4-1. dict_valuesはリストではない

dict_valuesオブジェクトはリストに似ていますが、インデックスアクセスができません。

person = {"name": "Alice", "age": 25}

values = person.values()
print(values[0])  # エラーになる

実行結果:

TypeError: 'dict_values' object is not subscriptable

この場合は list()で変換してからアクセスしましょう。

4-2. 値の変更は辞書を通して行う

dict_valuesは「参照ビュー」なので、直接値を書き換えることはできません。値を変更したい場合は、辞書のキーを指定して更新する必要があります。

person = {"name": "Alice", "age": 25}

# 値を変更するにはキーを使う
person["age"] = 26
print(person.values())

実行結果:

dict_values(['Alice', 26])

 

5. まとめ

今回は、Pythonの辞書から値を取得する values()について解説しました。
ポイントを振り返ると以下の通りです。

  • values()で辞書の値だけを取り出せる
  • 返り値はdict_valuesオブジェクトで、必要ならlist()に変換
  • for文やsum()set()などと組み合わせると便利
  • 直接編集はできないので、変更はキーを指定して行う

実務では「データの集計」「値のチェック」「重複排除」など、values()を使う場面は多くあります。学習のコツとしては、まずは小さな辞書で試しながら「ビューオブジェクトの特徴」に慣れることです。
ぜひご自身のプログラムでも活用してみてください。

タイトルとURLをコピーしました