【Python】リストの基本:作成・追加・削除・スライスの使い方

Python

こんにちは、かつコーチです。

Pythonで複数のデータをまとめて扱いたいとき、最初に覚えるのがリストです。

リストとは、複数の値を順番に並べて格納できるデータ構造のことです。

この記事では、リストの作成方法から要素の追加・削除、そして初心者がつまずきやすいスライス記法まで、順を追って解説します。

私自身、学び始めのころはappendinsertの違いや、スライスの範囲指定でよく混乱していました。

その体験も交えながら、実際に手を動かして理解できる内容にしています。

基本の書き方:リストの作成と操作

リストを作成する

リストは[](角かっこ)を使って作成します。

fruits = ["りんご", "みかん", "ぶどう"]
print(fruits)
# ['りんご', 'みかん', 'ぶどう']

数値・文字列・真偽値など、異なる型を混在させることも可能です。

mixed = [1, "python", True, 3.14]
print(mixed)
# [1, 'python', True, 3.14]

要素数はlen()関数で確認できます。

print(len(fruits))
# 3

要素の追加:append・insert

リストの末尾に要素を追加するにはappend()を使います。

fruits.append("メロン")
print(fruits)
# ['りんご', 'みかん', 'ぶどう', 'メロン']

特定の位置に要素を挿入したい場合はinsert()を使います。

fruits.insert(1, "バナナ")
print(fruits)
# ['りんご', 'バナナ', 'みかん', 'ぶどう', 'メロン']

insert(1, "バナナ")は、インデックス1の位置に「バナナ」を割り込ませる、という意味です。

要素の削除:remove・pop

値を指定して削除するにはremove()を使います。

fruits.remove("みかん")
print(fruits)
# ['りんご', 'バナナ', 'ぶどう', 'メロン']

インデックス(位置番号)を指定して削除しつつ、その値を取得したい場合はpop()が便利です。

last_item = fruits.pop()
print(last_item)
# メロン
print(fruits)
# ['りんご', 'バナナ', 'ぶどう']

pop()は引数を省略すると最後の要素を取り出し、pop(0)のように書けば指定した位置の要素を取り出せます。

つまずきやすい設定・注意点

remove()は、指定した値がリストに存在しないとエラーになります。

fruits.remove("パイナップル")
ValueError: list.remove(x): x not in list

このエラーを防ぐには、事前にin演算子で存在確認をしておくと安全です。

if "パイナップル" in fruits:
    fruits.remove("パイナップル")
else:
    print("パイナップルはリストにありません")

よくあるつまずきポイント・エラー対処

スライス記法でインデックスの範囲を間違える

リストの一部を取り出すスライスは、リスト[開始:終了]という書き方をします。

私が最初につまずいたのが、この「終了」の位置の指定でした。

❌ Before:終了インデックスを「含まれる位置」と勘違いする

numbers = [10, 20, 30, 40, 50]
result = numbers[1:3]
print(result)

私は当初、numbers[1:3]と書けば「インデックス1から3までの3つが取れる」と思い込んでいました。

しかし実際の出力はこうなります。

[20, 30]

期待していた[20, 30, 40]とは異なり、2つしか取れずに戸惑った経験があります。

✅ After:終了インデックスは「含まない位置」だと理解して書く

Pythonのスライスは、終了インデックスの要素は含まれません

numbers[1:3]は「インデックス1から2まで(3の手前まで)」を意味します。

numbers = [10, 20, 30, 40, 50]
result = numbers[1:4]
print(result)
# [20, 30, 40]

この仕様を覚えてからは、「取得したい個数 = 終了インデックス − 開始インデックス」という考え方で書けるようになり、迷わなくなりました。

負のインデックスを使うと、末尾からの指定も可能です。

print(numbers[-2:])
# [40, 50]

まとめ

この記事のポイント

  • リストは[]で作成し、異なる型の値も混在できる
  • 末尾への追加はappend()、位置指定はinsert()
  • 値指定の削除はremove()、位置指定&取り出しはpop()
  • remove()は値が存在しないとValueErrorになるため、事前チェックが安全
  • スライスの終了インデックスは「含まれない」ことを覚えておく

次に読むべき記事

リストの基本を押さえたら、次はイミュータブル(変更不可)なデータ構造である「タプル」との違いを理解しておきましょう。

→ 次の記事:タプルの基本とリストとの違い

タグ: Python, 初心者向け, 基本文法

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