【初心者向け】Pythonでリストの要素を追加・削除する方法|基本から応用まで

「リストに新しいデータを追加したい」
「いらない要素を削除したいけど、どうやるの?」

今回はリストの要素を追加・削除する方法について、初心者の方でも理解できるように詳しく説明していきます。

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)  # ['いちご', 'りんご', 'ぶどう', 'バナナ', 'みかん']

使い方リスト.insert(位置, 追加したい要素)

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)  # ['りんご', 'ぶどう']

注意点:同じ値が複数ある場合は、最初に見つかった1つだけが削除されます。

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]

どうしてもfor文を使いたい場合は、スライスや内包表記を使う。

削除・追加方法の使い分けまとめ

操作方法特徴使用場面
末尾に追加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()から始めて、少しずつ他の方法も覚えていきましょう!

コメント

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