Pythonで辞書のキー・値・アイテムを取得する方法(keys(), values())
生徒
「Pythonの辞書って何ですか?プログラミング未経験の私でもわかるように教えてほしいです。」
先生
「Pythonの辞書は、たとえば電話帳のようなものです。名前がキーで電話番号が値。キーと値がペアで登録されていて、簡単に必要な情報を取り出せますよ。」
生徒
「その辞書の中の名前だけや電話番号だけを取り出すことはできますか?」
先生
「はい、できます。Pythonにはkeys()やvalues()という便利なメソッド(命令)があって、辞書からキーだけ、値だけを取り出せます。」
生徒
「具体的にどう使うのか、例を教えてもらえますか?」
先生
「もちろんです。これからわかりやすく説明しますね。」
1. Pythonの辞書とは?初心者でもわかる基本の説明
Pythonの辞書は「キー」と「値」のペアで情報を管理するデータの種類です。キーは「ラベル」や「名前」のような役割で、値はそのラベルに対応した情報です。
たとえば、電話帳では「山田さん」がキーで、「090-1234-5678」という電話番号が値にあたります。辞書はこうしたセットをまとめて扱うことができます。
パソコン初心者の方は、「名前の付いた引き出しがあって、その中に電話番号が入っているイメージ」と考えるとわかりやすいでしょう。
2. Pythonの辞書を作ってみよう
まずは簡単な辞書を作成してみます。下記のコードは名前と電話番号の辞書です。
phone_book = {
"山田": "090-1234-5678",
"佐藤": "080-9876-5432",
"鈴木": "070-5555-6666"
}
このphone_bookは「山田」「佐藤」「鈴木」という名前をキーに、対応する電話番号が値として登録されています。
3. keys()メソッドで辞書のキーだけを取り出す
辞書の中の「キー」だけを一覧で取り出すにはkeys()メソッドを使います。電話帳の名前だけを一覧で見るイメージです。
keys = phone_book.keys()
print(keys)
実行結果は下記のようになります。
dict_keys(['山田', '佐藤', '鈴木'])
dict_keysはPythonが「辞書のキーの一覧ですよ」と示す特別な形ですが、リストのように扱うことができます。
4. values()メソッドで辞書の値だけを取り出す
同様に、辞書の「値」だけを取り出すにはvalues()メソッドを使います。電話帳の電話番号だけを一覧で取り出すイメージです。
values = phone_book.values()
print(values)
実行結果はこのように表示されます。
dict_values(['090-1234-5678', '080-9876-5432', '070-5555-6666'])
5. items()メソッドでキーと値のセットを取り出す
キーと値のペアをまとめて取り出したいときは、items()メソッドを使います。辞書の中身を一つずつキーと値のセットで取得するイメージです。
items = phone_book.items()
print(items)
実行結果は次のように表示されます。
dict_items([('山田', '090-1234-5678'), ('佐藤', '080-9876-5432'), ('鈴木', '070-5555-6666')])
これもリストのように扱え、例えば繰り返し処理で一つずつ取り出すことができます。
6. list()関数で普通のリストに変換する方法
keys()やvalues()、items()は特別な形なので、普通のリストとして扱いたい場合はlist()関数を使います。
keys_list = list(phone_book.keys())
values_list = list(phone_book.values())
items_list = list(phone_book.items())
print(keys_list)
print(values_list)
print(items_list)
このようにすると、インデックス番号でアクセスしたり、リストの操作が簡単になります。
7. 実践例:辞書のキーと値を使って表示する
辞書のキーと値を組み合わせて使う例です。items()でペアを取り出して表示しましょう。
for name, number in phone_book.items():
print(f"{name}さんの電話番号は{number}です。")
実行結果は次のようになります。
山田さんの電話番号は090-1234-5678です。
佐藤さんの電話番号は080-9876-5432です。
鈴木さんの電話番号は070-5555-6666です。
このように、辞書のキーと値を使って情報を分かりやすく表示できます。
8. 辞書のキー・値・アイテムの取り出しポイント
・keys()は辞書の「キーだけ」を取り出すメソッド
・values()は辞書の「値だけ」を取り出すメソッド
・items()は「キーと値のペア」を取り出すメソッド
・必要に応じてlist()を使うと普通のリストに変換できる
・これらを使うことで、辞書の情報を自由に扱うことができる
Pythonの辞書はデータ整理にとても便利なので、ぜひ覚えて活用してくださいね。
まとめ
Pythonの辞書操作をふりかえって理解を深めよう
ここまで、Pythonの辞書に関する基本的な使い方として、キーだけを取り出すためのkeys()、値だけを取り出すためのvalues()、キーと値のセットを取り出すitems()について学びました。辞書は、ひとつひとつの情報に名前を付けて整理できるとても便利なデータ構造であり、日常的なメモのように名前と内容を結びつけて保存したい場合に大活躍します。とくに、電話帳のように名前と電話番号を組み合わせて保存する場面では、辞書というしくみが実際のイメージと重なりやすいため、初心者の方にも理解しやすいでしょう。プログラミングの初心者がPythonを学び始めたとき、辞書は少しむずかしく感じられることもありますが、実際にはとても柔軟で扱いやすく、情報をきれいにまとめて管理できる重要なデータのひとつです。
また、辞書はただ情報を保存するだけではなく、必要な部分だけを効率よく取り出して利用できる点にも大きな魅力があります。たとえば、名前だけを取り出して画面に表示したいときにはkeys()を使うことで、辞書のすべてのキーが整理された形で取得できます。同じように、登録されている値だけを集めたい場合にはvalues()を呼び出すことで、辞書に含まれるデータを目的に合わせて使い分けることができます。さらに、情報をひとつずつ確実に処理したい場合にはitems()を使ってキーと値をペアとして受け取り、ループを使って整理しながら処理する方法もよく使われます。これらのメソッドは、Pythonでデータを扱うときに非常に役立つ基本のしくみであり、初心者のうちにしっかり覚えておくことで、後々データ処理の幅が大きく広がります。
さらに、辞書から取り出したキーや値をリストとして使いたい場面ではlist()を利用することで、Pythonのリストと同じように扱える形に変換できます。これにより、インデックス番号を指定して一つずつ取り出したり、並べ替えたり、個数を調べたりなど、リストならではの便利な操作が行えるようになります。初心者にとっては、辞書とリストの関係が少しややこしく見えることもありますが、keys()やvalues()などが返す特別なオブジェクトをリストに変換することで、より自由度の高い処理が可能になる点を理解しておくとよいでしょう。
ここで、本記事で学んだ辞書操作のポイントをふりかえりとして簡単なサンプルプログラムで確認してみます。以下のコードは、電話帳のような辞書を使ってキーと値を取り出し、それぞれをわかりやすく加工しながら表示する例です。
phone_book = {
"山田": "090-1234-5678",
"佐藤": "080-9876-5432",
"鈴木": "070-5555-6666"
}
print(list(phone_book.keys()))
print(list(phone_book.values()))
print(list(phone_book.items()))
for name, number in phone_book.items():
print(f"{name}さんの番号は{number}です。")
このように、辞書を使ったデータ整理はとても柔軟で、必要な情報だけを効率よく取り出せるという大きな強みがあります。キーと値を組み合わせて保存することで、情報の意味がわかりやすくなり、プログラム全体の見通しも良くなります。初心者のうちはまず、keys()、values()、items()の違いをゆっくり確認しながら自分の手で試してみることが大切です。何度か繰り返すことで自然と体に覚え込ませることができ、他のプログラムでも応用がきくようになります。
さらに、辞書はPythonで実践的なデータ処理を行ううえでも欠かせない存在です。実際の開発では、設定情報を辞書で管理したり、ユーザーごとのデータをまとめたり、APIから受け取った情報を辞書として解析したりする機会がとても多くあります。今回学んだ辞書操作の基礎がしっかり身についていれば、より複雑なデータ構造を扱うときや大量の情報を処理するときも迷わずに進めるようになります。辞書を使う場面はこれからますます増えるため、この段階で理解を深めておくことが今後の学習にも大いに役立ちます。
生徒「きょう学んだ辞書のキーや値の取り出し方、すごく便利だと感じました。とくにitems()を使うとキーと値の両方をまとめて扱えるところがわかりやすかったです。」
先生「その通りですね。辞書のペアをまとめて扱えるので、情報を整理しながら処理するときにとても役立ちますよ。実際の開発現場でもよく使われます。」
生徒「list()でリストに変換すると自由に扱える幅が広がるのも理解できました。これなら辞書のデータをいろいろ加工できそうです。」
先生「はい。辞書とリストをうまく組み合わせると、さらに効率的にデータ処理ができるようになります。今後の学習でも大事なポイントなので、ぜひ復習しておきましょう。」
生徒「ありがとうございます。これからも辞書を使ったプログラムに挑戦してみます!」