「リストに新しいデータを追加したい」
「いらない要素を削除したいけど、どうやるの?」
今回はリストの要素を追加・削除する方法について、初心者の方でも理解できるように詳しく説明していきます。
pythonのリストは柔軟にデータを追加・削除できる便利な機能です。
しかも、たった1行で実現できる操作がたくさんあるので、覚えておくとプログラミングがとても楽になります。
この記事を読めば、リストの追加・削除を自在に操れるようになります。
基本的なリストの作り方

まずは、リストの基本的な作り方を確認しておきましょう。
# 基本的なリストの作成
fruits = ["りんご", "バナナ", "みかん"]
print(fruits) # ['りんご', 'バナナ', 'みかん']
# 空のリストも作れる
empty_list = []
print(empty_list) # []
リストは角括弧[ ]で囲んで、カンマで区切って複数の要素を並べて作ります。
リストに要素を追加する方法
リストに新しい要素を追加する方法は、主に3つあります。
append():最後に1つ追加する
一番よく使う方法です。リストの最後に新しい要素を1つ追加します。
fruits = ["りんご", "バナナ", "みかん"]
# 最後に「もも」を追加
fruits.append("もも")
print(fruits) # ['りんご', 'バナナ', 'みかん', 'もも']
# さらに「ぶどう」を追加
fruits.append("ぶどう")
print(fruits) # ['りんご', 'バナナ', 'みかん', 'もも', 'ぶどう']
insert():指定した位置に挿入する
リストの好きな位置に要素を挿入したい時に使います。
fruits = ["りんご", "バナナ", "みかん"]
# 1番目の位置(バナナの前)に「ぶどう」を挿入
fruits.insert(1, "ぶどう")
print(fruits) # ['りんご', 'ぶどう', 'バナナ', 'みかん']
# 0番目の位置(最初)に「いちご」を挿入
fruits.insert(0, "いちご")
print(fruits) # ['いちご', 'りんご', 'ぶどう', 'バナナ', 'みかん']
extend():複数の要素を一度に追加する
複数の要素をまとめて追加したい時に使います。
fruits = ["りんご", "バナナ", "みかん"]
# 複数の果物を一度に追加
new_fruits = ["すいか", "なし", "もも"]
fruits.extend(new_fruits)
print(fruits) # ['りんご', 'バナナ', 'みかん', 'すいか', 'なし', 'もも']
# リストを直接指定することもできる
fruits.extend(["メロン", "キウイ"])
print(fruits) # ['りんご', 'バナナ', 'みかん', 'すいか', 'なし', 'もも', 'メロン', 'キウイ']
append()とextend()の違い
この2つの違いは重要なので、しっかり覚えておきましょう。
# append()の場合:リスト全体が1つの要素として追加される
list1 = [1, 2, 3]
list1.append([4, 5])
print(list1) # [1, 2, 3, [4, 5]]
# extend()の場合:各要素がバラバラに追加される
list2 = [1, 2, 3]
list2.extend([4, 5])
print(list2) # [1, 2, 3, 4, 5]
リストから要素を削除する方法

リストから要素を削除する方法は、主に4つあります。
remove():値を指定して削除する
削除したい要素の値を指定して削除します。
fruits = ["りんご", "バナナ", "みかん", "ぶどう"]
# 「バナナ」を削除
fruits.remove("バナナ")
print(fruits) # ['りんご', 'みかん', 'ぶどう']
# 「みかん」を削除
fruits.remove("みかん")
print(fruits) # ['りんご', 'ぶどう']
numbers = [1, 2, 3, 2, 4, 2]
# 最初の「2」だけが削除される
numbers.remove(2)
print(numbers) # [1, 3, 2, 4, 2]
pop():位置を指定して削除し、値を返す
削除したい要素の位置(番号)を指定して削除します。削除された要素の値が返されるのが特徴です。
fruits = ["りんご", "バナナ", "みかん", "ぶどう"]
# 1番目の要素(バナナ)を削除して取得
removed_fruit = fruits.pop(1)
print(removed_fruit) # バナナ
print(fruits) # ['りんご', 'みかん', 'ぶどう']
# 引数を省略すると最後の要素が削除される
last_fruit = fruits.pop()
print(last_fruit) # ぶどう
print(fruits) # ['りんご', 'みかん']
del:位置を指定して削除する(値は返されない)
削除したい要素の位置を指定して削除します。pop()
と違って、削除された値は返されません。
fruits = ["りんご", "バナナ", "みかん", "ぶどう"]
# 0番目の要素(りんご)を削除
del fruits[0]
print(fruits) # ['バナナ', 'みかん', 'ぶどう']
# 複数の要素をまとめて削除することもできる
del fruits[1:3] # 1番目から3番目の直前まで削除
print(fruits) # ['バナナ']
clear():すべての要素を削除する
リストの中身をすべて削除して、空のリストにします。
fruits = ["りんご", "バナナ", "みかん", "ぶどう"]
# すべての要素を削除
fruits.clear()
print(fruits) # []
よくある間違いと注意点

存在しない値をremove()で削除しようとする
fruits = ["りんご", "バナナ", "みかん"]
# 間違い:存在しない「ぶどう」を削除しようとする
# fruits.remove("ぶどう") # ValueError: list.remove(x): x not in list
# 正しい:事前に存在確認をする
if "ぶどう" in fruits:
fruits.remove("ぶどう")
else:
print("ぶどうは見つかりませんでした")
存在しない位置をpop()やdelで指定する
fruits = ["りんご", "バナナ"]
# 間違い:存在しない5番目を削除しようとする
# fruits.pop(5) # IndexError: pop index out of range
# 正しい:事前に長さを確認する
if len(fruits) > 5:
fruits.pop(5)
else:
print("5番目の要素は存在しません")
for文で繰り返しながら要素を削除する
numbers = [1, 2, 3, 4, 5]
# 間違い:for文で繰り返しながら削除すると問題が起きる
# for num in numbers:
# if num % 2 == 0: # 偶数の場合
# numbers.remove(num) # 削除すると次の要素がスキップされる
# 正しい:逆順でfor文を回すか、新しいリストを作る
# 方法1:逆順で削除
for i in range(len(numbers) - 1, -1, -1):
if numbers[i] % 2 == 0:
del numbers[i]
# 方法2:新しいリストを作成
numbers = [1, 2, 3, 4, 5]
odd_numbers = [num for num in numbers if num % 2 != 0]
print(odd_numbers) # [1, 3, 5]
削除・追加方法の使い分けまとめ
操作 | 方法 | 特徴 | 使用場面 |
---|---|---|---|
末尾に追加 | append() | 1要素だけ追加 | 新しいデータを順次追加 |
複数要素追加 | extend() | 複数要素を分けて追加 | 2つのリストを結合 |
指定位置に挿入 | insert() | 任意の位置に追加 | 特定の位置にデータを挿入 |
値で削除 | remove() | 最初に見つかった値を削除 | 特定の値を削除したい |
位置で削除 | pop() | 指定位置を削除し値を返す | 削除した値を使いたい |
位置で削除 | del | 指定位置を削除(値は返さない) | 単純に削除したいだけ |
全削除 | clear() | すべての要素を削除 | リストを空にしたい |
実践的な使用例

ユーザーからの入力を管理する
# ユーザーのタスクリストを管理
tasks = []
# タスクを追加
tasks.append("買い物に行く")
tasks.append("宿題をする")
tasks.append("掃除をする")
print(f"現在のタスク: {tasks}")
# タスクを完了(削除)
completed_task = tasks.pop(0) # 最初のタスクを完了
print(f"完了したタスク: {completed_task}")
print(f"残りのタスク: {tasks}")
データの重複を削除する
# 重複した値をすべて削除
fruits = ["りんご", "バナナ", "みかん", "バナナ", "ぶどう", "みかん"]
# 重複を削除してユニークなリストを作成
unique_fruits = []
for fruit in fruits:
if fruit not in unique_fruits:
unique_fruits.append(fruit)
print(unique_fruits) # ['りんご', 'バナナ', 'みかん', 'ぶどう']
条件に合う要素だけを削除する
# 偶数だけを削除
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 逆順で削除して、インデックスのずれを防ぐ
for i in range(len(numbers) - 1, -1, -1):
if numbers[i] % 2 == 0: # 偶数の場合
del numbers[i]
print(numbers) # [1, 3, 5, 7, 9]
よくある質問
- Qリストの長さを知るにはどうすれば良い?
- A
len()
関数を使います。fruits = ["りんご", "バナナ", "みかん"]
print(len(fruits)) # 3
- Q特定の値がいくつあるか数えたい
- A
count()
メソッドを使います。numbers = [1, 2, 3, 2, 4, 2, 5]
print(numbers.count(2)) # 3
- Q重複した要素をすべて削除するには?
- A
Q:重複した要素をすべて削除するには?
while
文とremove()
を組み合わせます。fruits = ["りんご", "バナナ", "みかん", "バナナ", "ぶどう"] # すべての「バナナ」を削除 while "バナナ" in fruits: fruits.remove("バナナ") print(fruits) # ['りんご', 'みかん', 'ぶどう']
- Qリストの特定の位置に複数要素を挿入したい
- A
スライスを使った代入を活用します。
fruits = ["りんご", "ぶどう"]
# 1番目の位置に複数要素を挿入
fruits[1:1] = ["バナナ", "みかん"]
print(fruits) # ['りんご', 'バナナ', 'みかん', 'ぶどう']
まとめ
pythonのリストは、とても柔軟でパワフルなデータ構造です。
今回学んだポイント
- 追加:
append()
(1要素)、extend()
(複数要素)、insert()
(指定位置) - 削除:
remove()
(値指定)、pop()
(位置指定+値返却)、del
(位置指定)、clear()
(全削除) - 注意点:存在確認、for文での削除時の注意、appendとextendの違い
これらの方法を使いこなせば、データの加工・整理・検索などがスマートに書けるようになります。
まずは基本的なappend()
とremove()
から始めて、少しずつ他の方法も覚えていきましょう!
コメント