Pythonの辞書(ディクショナリ)でキーと値にアクセスする3つの方法
Pythonのデータ構造を使ってデータ分析を行っていると、辞書(ディクショナリ)に格納されたキーと値にアクセスする場面に必ず出会います。アクセス方法は複数あり、状況によって使い分けるとコードがより読みやすく効率的になります。この記事では、代表的な3つの方法をサンプルコード付きで解説します。
方法1:forループを使う
forループで辞書を直接反復処理すると、各位置のキーを取得できます。さらにそのキーを使って、対応する値にもアクセス可能です。最も基本的な方法と言えます。
サンプルコード
dictA = {1:'Mon',2:'Tue',3:'Wed',4:'Thu',5:'Fri'}
# 元となる辞書
print("Given Dictionary: ",dictA)
# すべてのキーと値を出力
print("Keys and Values: ")
for i in dictA :
print(i, dictA[i])
実行結果
上記のコードを実行すると、次のような結果が得られます。
Given Dictionary: {1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri'}
Keys and Values:
1 Mon
2 Tue
3 Wed
4 Thu
5 Fri
方法2:リスト内包表記を使う
このアプローチでは、キーをリストのインデックスのように扱います。print文の中でforループと組み合わせることで、キーと値をタプルのペアとしてまとめて出力できます。1行で簡潔に書けるのが大きな魅力です。
サンプルコード
dictA = {1:'Mon',2:'Tue',3:'Wed',4:'Thu',5:'Fri'}
# 元となる辞書
print("Given Dictionary: ",dictA)
# すべてのキーと値を出力
print("Keys and Values: ")
print([(k, dictA[k]) for k in dictA])
実行結果
上記のコードを実行すると、次のような結果が得られます。
Given Dictionary: {1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri'}
Keys and Values:
[(1, 'Mon'), (2, 'Tue'), (3, 'Wed'), (4, 'Thu'), (5, 'Fri')]
方法3:dict.items()メソッドを使う
Pythonの辞書クラスには、items()という便利なメソッドが標準で用意されています。このメソッドを呼び出して反復処理することで、キーと値のペアを一度に受け取れます。可読性が高く、Pythonicな書き方として最も推奨される方法です。
サンプルコード
dictA = {1:'Mon',2:'Tue',3:'Wed',4:'Thu',5:'Fri'}
# 元となる辞書
print("Given Dictionary: ",dictA)
# すべてのキーと値を出力
print("Keys and Values: ")
for key, value in dictA.items():
print(key, value)
実行結果
上記のコードを実行すると、次のような結果が得られます。
Given Dictionary: {1: 'Mon', 2: 'Tue', 3: 'Wed', 4: 'Thu', 5: 'Fri'}
Keys and Values:
1 Mon
2 Tue
3 Wed
4 Thu
5 Fri
まとめ:どの方法を選ぶべきか?
3つの方法はいずれも同じ結果を得られますが、用途に応じた使い分けがおすすめです。
- forループ+インデックスアクセス: キーだけを先に処理したい場合や、条件分岐を挟みながら値を参照したい場合に柔軟に対応できます。
- リスト内包表記: キーと値のペアをリストとして一括生成したい場合に最適で、コードが非常にコンパクトになります。
- dict.items(): キーと値を同時に扱う通常のループ処理では、最もシンプルで可読性が高い標準的な方法です。
特に理由がなければ、dict.items()を使う方法を第一候補とし、目的に応じて他の方法を活用するとよいでしょう。
-
Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例
Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実
-
Pythonの辞書(dict)で特定のキーの値を取得・出力する方法
Pythonの辞書(dict)は、キーと値のペアを格納するコレクションです。特定のキーに関連付けられた値を取得したい場合は、get()メソッドを使うのが便利です。get()メソッドを使って値を取得するget()メソッドにキーを渡すと、そのキーに対応する値が返されます。>>> D1 = {a: 11, b: 22, c: 33} >>> D1.get(b) 22角括弧([])を使って値を取得するまた、リストと同じように、角括弧の中にキーを指定することでも値を取得できます。>>> D1[c] 33get()メソッドと角括弧の違い両者の大きな違い