Python
 Computer >> コンピューター >  >> プログラミング >> Python

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()を使う方法を第一候補とし、目的に応じて他の方法を活用するとよいでしょう。

  1. Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例

    Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実

  2. Pythonの辞書(dict)で特定のキーの値を取得・出力する方法

    Pythonの辞書(dict)は、キーと値のペアを格納するコレクションです。特定のキーに関連付けられた値を取得したい場合は、get()メソッドを使うのが便利です。get()メソッドを使って値を取得するget()メソッドにキーを渡すと、そのキーに対応する値が返されます。>>> D1 = {a: 11, b: 22, c: 33} >>> D1.get(b) 22角括弧([])を使って値を取得するまた、リストと同じように、角括弧の中にキーを指定することでも値を取得できます。>>> D1[c] 33get()メソッドと角括弧の違い両者の大きな違い