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()
を使う場面は多くあります。学習のコツとしては、まずは小さな辞書で試しながら「ビューオブジェクトの特徴」に慣れることです。
ぜひご自身のプログラムでも活用してみてください。