Python: 変数のアンパックと _ の使い方

Python の基礎

日付:2025年2月19日

Python におけるタプルやリストのアンパックと _ の活用方法を解説します。変数を無視するための _ の使い方も紹介します。

目 次

はじめに

Python では、タプルやリストの値を一度に複数の変数に代入する「アンパック(unpacking)」が可能です。
また、使わない変数を _ に代入することで 「この値は無視する」 という意図を明示できます。

本記事では、変数のアンパックの基本から、 _ を活用する方法まで解説します。

1. Python のアンパックとは?

Python では タプルやリストの要素を一度に複数の変数に展開(アンパック) できます。

PYTHON
x, y = (1, 2) # x = 1, y = 2

リストでも同様に使用可能です。

PYTHON
x, y, z = [10, 20, 30] # x = 10, y = 20, z = 30

📌 ポイント

  • x, y = (1, 2) のように、右辺の要素を左辺の変数に 順番に対応させる
  • 要素数と変数の数が合わないと エラーが発生する
PYTHON
x, y = (1, 2, 3) # ❌ エラー:変数の数が足りない

2. _ を使って不要な変数を無視する

Python では 使わない変数を _ に代入する ことで、「この値は不要」という意図を表現できます。

PYTHON
_, second = (1, 2) # 1 は無視し、second = 2

📌

PYTHON
coordinates = (10, 20, 30) _, y, z = coordinates # x を無視し、y = 20, z = 30

メリット

  • 可読性が向上し、無視する変数が明確になる。
  • 余計な変数を定義せず、意図しないエラーを防げる。

3. 複数の _ を使う場合

リストやタプルの一部の値を無視したい場合、複数の _ を使用できます。

PYTHON
data = ("ID123", "John", "Doe", 30) _, first_name, _, age = data # last_name を無視

また、リストの最初と最後だけを取得したい場合:

PYTHON
data = [100, 200, 300, 400, 500] first, *_, last = data # first = 100, last = 500

応用例

  • _ を複数使うことで 必要なデータだけを抽出 できる。
  • * を組み合わせると、不要な中間データを無視できる。

4. ループで _ を使う

ループ変数を使わない場合にも _ を利用できます。

PYTHON
for _ in range(3): print("Hello")

ポイント

  • _ を使うと、ループ変数が不要であることを明示 できる。
  • for i in range(3): のように i を定義して未使用にするより、コードがスッキリする。

5. Python の _ のその他の使い方

✅ _ を使うと REPL(対話型シェル)で直前の値を取得できる

PYTHON
>>> 3 + 4 7 >>> _ # 直前の計算結果を取得 7

ただし、通常のスクリプトでは _ に特別な意味はないため、変数として使用可能です。

6. _ の使い方まとめ

用途説明
アンパック時に不要な値を無視_, value = (1, 2)最初の値を捨て、2 だけ取得
ループで使わない値を無視for _ in range(5):ループ変数が不要な場合
関数の戻り値の一部を無視_, data = get_data()使わない戻り値を _ に代入
リストの一部を無視first, *_, last = my_list最初と最後だけ取得
REPL で直前の値を取得_直前の計算結果を取得

Python の _ は「この値は使わない」という意味を持つプレースホルダー であり、コードの可読性を向上させるのに役立ちます。

7. まとめ

  • Python では タプルやリストのアンパック を使って複数の変数に代入できる。
  • _ を使うと、「この変数は使わない」ことを明示でき、可読性が向上する
  • for _ in range(5): のように、ループ変数が不要な場合にも _ を活用できる。
  • REPL では _ は直前の計算結果を参照する特殊な意味を持つが、通常のスクリプトでは自由に使用できる。

Python の _ を上手に活用し、コードをより明確に書きましょう。