Python|アンパック代入でタプル・リスト・辞書の要素を複数の変数に一度に代入する方法

1. はじめに

Pythonのアンパック代入とは、タプル・リスト・辞書などの複数の要素を、一度に複数の変数に代入できる便利な構文です。直感的で読みやすく、特に関数の戻り値やループ処理などで役立ちます。

本記事では、Python|アンパック代入でタプル・リスト・辞書の要素を複数の変数に一度に代入する方法を、初心者にもわかりやすく具体的なコード例を交えて解説します。

学習を通じて、実務で使えるPythonの書き方を身につけていきましょう。

 

2. Pythonにおけるアンパック代入の基本

2-1. タプルのアンパック代入

Pythonでは、タプルの各要素を変数に分けて一括で代入できます。

# タプルをアンパックして変数に代入
person = ("Alice", 25, "Tokyo")
name, age, city = person

print(name)
print(age)
print(city)

実行結果:

Alice
25
Tokyo

2-2. リストのアンパック代入

リストも同様にアンパック可能です。

# リストをアンパック
colors = ["red", "green", "blue"]
r, g, b = colors

print(r)
print(g)
print(b)

実行結果:

red
green
blue

2-3. 辞書のキーや値のアンパック

辞書はそのままではアンパックできませんが、items()keys()values()メソッドと組み合わせて使います。

# 辞書のアンパック(keyとvalueを取得)
user = {"name": "Bob", "age": 30}
for key, value in user.items():
    print(f"{key}: {value}")

実行結果:

name: Bob
age: 30

 

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

3-1. 関数の戻り値を複数の変数に代入

関数が複数の値を返すとき、アンパックでスッキリと書けます。

# 関数の戻り値をアンパック
def get_status():
    return 200, "OK"

code, message = get_status()
print(code)
print(message)

実行結果:

200
OK

3-2. *(アスタリスク)を使った柔軟なアンパック

一部だけを変数に取り出し、残りをまとめて受け取ることもできます。

# 先頭と末尾だけ取り出して、残りをまとめて取得
numbers = [1, 2, 3, 4, 5]
first, *middle, last = numbers

print(first)
print(middle)
print(last)

実行結果:

1
[2, 3, 4]
5

3-3. zipと組み合わせて複数のリストを同時に処理

names = ["Tom", "Jerry"]
ages = [28, 31]

for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")

実行結果:

Tom is 28 years old.
Jerry is 31 years old.

 

4. アンパック代入の注意点・エラー対策

4-1. 変数の数と要素数が一致しないとエラー

アンパック代入では、左辺の変数数と右辺の要素数が一致しないとエラーになります。

# エラー例:要素数が不足している
values = (10, 20)
a, b, c = values  # ValueError!

対処法: *演算子(アンパック)を使って残りをまとめると柔軟に対応できます。

4-2. 辞書のアンパックはitems()を使う

辞書をループでアンパックするには、items()を忘れずに。

# エラーになる例
d = {"a": 1, "b": 2}
for k, v in d:  # TypeError!
    print(k, v)

正しい書き方:

for k, v in d.items():
    print(k, v)

 

5. まとめ

今回は、Pythonのアンパック代入について、タプル・リスト・辞書の基本から応用、注意点までを丁寧に解説しました。

  • タプルやリストの要素を一度に変数に代入できる
  • 辞書ではitems()を活用してキーと値を取り出す
  • *演算子を使えば柔軟な代入が可能

実務では、関数の戻り値や複数データの一括処理などで頻繁に使われます。アンパック代入をマスターして、Pythonコードをより簡潔かつ可読性の高いものにしましょう。

💡学習のコツ:小さなコードで試しながら、「変数の数と値の数が一致するか」を意識するとミスが減ります。

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