Python|キーと値のペア(タプル)のリストを取得する:items()

スポンサーリンク

1. はじめに

Python で辞書(dict)を扱うときに便利なのが items() メソッドです。これを使うことで、辞書のキーと値をペア(タプル)としてまとめて取得できます。本記事「Python|キーと値のペア(タプル)のリストを取得する:items()」では、このメソッドの基本的な使い方から応用例、注意点、実務での活用までを丁寧に解説します。

  • items() の基本動作と仕組み
  • よく使われる実践的なコード例
  • 初心者が間違えやすいポイントと対策
  • 学習のコツや実務での活用方法

 

2. items() の基本解説

2.1 items() とは?

dict.items() は辞書に含まれるすべてのキーと値のペアを (key, value) というタプルの形で取り出すメソッドです。返り値は dict_items というビューオブジェクトですが、リストに変換して扱うことも可能です。

2.2 基本的なコード例

person = {"name": "Taro", "age": 28, "city": "Tokyo"}

# items() でキーと値のペアを取得
for key, value in person.items():
    print(key, ":", value)

# dict_items オブジェクトとして取得
print(person.items())

# リストに変換
print(list(person.items()))

実行結果:

name : Taro
age : 28
city : Tokyo
dict_items([('name', 'Taro'), ('age', 28), ('city', 'Tokyo')])
[('name', 'Taro'), ('age', 28), ('city', 'Tokyo')]

 

3. よくある使い方・応用例

3.1 条件に基づいた辞書のフィルタリング

items() を利用すると、条件を満たす要素だけを新しい辞書として取り出すことができます。

scores = {"Alice": 85, "Bob": 59, "Charlie": 72, "Dave": 90}

# 60点以上の人だけを取り出す
passed = {name: score for name, score in scores.items() if score >= 60}
print(passed)

実行結果:

{'Alice': 85, 'Charlie': 72, 'Dave': 90}

3.2 ソート処理との組み合わせ

items()sorted() と組み合わせることで、キーや値で辞書を並べ替える処理が簡単に書けます。

prices = {"apple": 120, "banana": 80, "cherry": 150}

# 値(価格)で昇順にソート
sorted_by_price = sorted(prices.items(), key=lambda x: x[1])
print(sorted_by_price)

# キーでソート
sorted_by_key = sorted(prices.items(), key=lambda x: x[0])
print(sorted_by_key)

実行結果:

[('banana', 80), ('apple', 120), ('cherry', 150)]
[('apple', 120), ('banana', 80), ('cherry', 150)]

3.3 辞書からデータフレームを作成(応用例)

Pandas を使うと、items() で取得したペアから簡単にデータフレームを作成できます。実務で Excel のように扱う場合に有効です。

import pandas as pd

data = {"Alice": 85, "Bob": 59, "Charlie": 72}
df = pd.DataFrame(list(data.items()), columns=["Name", "Score"])
print(df)

実行結果:

      Name  Score
0    Alice     85
1      Bob     59
2  Charlie     72

 

4. 注意点・エラー対策

4.1 items() の返り値はリストではない

dict.items() の返り値は dict_items というビューオブジェクトです。リストのようにインデックスでアクセスしようとするとエラーになるため、必要に応じて list() に変換してください。

4.2 Python 2 系と 3 系の違い

Python 2 系では items() がリストを返す一方で、Python 3 系ではビューオブジェクトを返します。現在は Python 3 が主流ですが、古い記事を見ると混乱する場合があるので注意してください。

4.3 for ループのアンパックでエラーが出る場合

for key, value in dict.items() と書いたときに「too many values to unpack」と出る場合は、辞書ではなく別のデータ型を処理している可能性があります。型を確認してから処理しましょう。

 

5. まとめ

本記事では Python の items() メソッド について以下の内容を学びました。

  • items() はキーと値のペアをタプルで取得できる
  • ループ処理、フィルタリング、ソートなど実用的な場面で活躍する
  • 返り値はビューオブジェクトなのでリストに変換することもできる
  • Python 2 と 3 で挙動が異なるため注意が必要

実務での活用ポイント:ログ解析やデータ整形など、大量のキーと値を同時に処理したい場面で items() は非常に役立ちます。学習のコツとしては、for key, value in dict.items() を実際に何度も書いて慣れることです。

ぜひ自分のコードでも items() を活用してみてください!

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