Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Pythonには、アイテムのコレクションを格納するための基本的なデータ構造として、リスト(lists)タプル(tuples) の2種類があります。

どちらも複数の値を1つの変数に格納できますが、大きな違いがあります — リストは変更可能、タプルは変更不可 です。

それぞれ詳しく見ていきましょう。


Pythonのリスト

リストミュータブル(mutable) なアイテムの集まりです。
ミュータブルとは、アイテムをいつでも追加、削除、変更できることを意味します。リストは角括弧 [] で書き、アイテムはカンマで区切ります。

例 — リストの作成:

fruits = ["apple", "banana", "orange"]
print(fruits)

# 出力: ["apple", "banana", "orange"]

1.1. インデックスによるアイテムのアクセス

Pythonでは、リスト(およびほとんどのシーケンス)はインデックス 0 から数え始めます。 つまり、リストの最初のアイテムは位置 0 にあり、2番目は 1、という具合です。

print(fruits[0])

# 出力: "apple"
ヒント: マイナスのインデックスは末尾から数えます: fruits[-1] → "orange"

1.2. リストのスライス

文字列と同様に、リストもスライスして範囲のアイテムを取得できます:

print(fruits[0:2])

# 出力: ["apple", "banana"]

スライス [start:end] は開始インデックスを含みますが、終了インデックスの直前で止まります。

1.3. アイテムの追加

リストの末尾にアイテムを追加するときは .append() を使います:

fruits.append("pineapple")
print(fruits)

# 出力: ["apple", "banana", "orange", "pineapple"]

1.4. アイテムの削除

特定の値の最初の出現を削除するときは .remove() を使います:

fruits.remove("orange")
print(fruits)

# 出力: ["apple", "banana", "pineapple"]

1.5. アイテムの存在確認

in 演算子を使うと、リスト内に値が存在するかどうかを確認できます:

has_orange = "orange" in fruits
print(has_orange)  # False

これを関数内で使うこともできます:

def is_fruit(item):
    if item in fruits:
        print(f"{item} は果物です!")
    else:
        print(f"{item} は果物ではありません!")

is_fruit("horse")
is_fruit("apple")

1.6. アイテムの変更

リストはミュータブルなので、既存の値を上書きできます:

fruits[0] = "green apple"
print(fruits)

重要!: リストは柔軟性が必要な場合に適しています。ただし、コレクションの内容が絶対に変わらないことが望ましい場合は、代わりにタプルを使いましょう。


Pythonのタプル

タプル はリストに非常によく似ていますが、イミュータブル(immutable) です。 イミュータブルとは、作成後は要素の追加、削除、変更ができないことを意味します。

タプルは丸括弧 () で囲み、アイテムはカンマで区切ります:

example = (1, 2, 3, 4)
print(example)
注意: タプルはリストなどのミュータブルなオブジェクトを内部に含めることはできますが、タプル自身の構造(どのアイテムが含まれているか)は変更できません。

まとめ

  • リスト: ミュータブル、[] を使い、変化するコレクションに最適。
  • タプル: イミュータブル、() を使い、固定データに最適。

次のレッスンでは、これらのコレクション内の各アイテムを処理するためのツールである ループ を学びます。