【Python】レッスン4-02:リストの要素を削除しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:リストの要素削除

この記事の練習問題で使用する知識:
レッスン1~3の知識リストの定義と要素追加リストの要素削除リストの情報出力リストの集計・並べ替えリストのスライスリストのループ処理リストの内包表記タプルの定義と基本操作タプルのアンパックとネスト辞書の定義と基本操作辞書のループ処理辞書の内包表記集合の定義と基本操作

<<前の問題 問題集Top 次の問題>>

Pythonの「リストの要素削除」とは

この章ではPythonにおける「リストの要素削除」の方法を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。



Pythonのリストは非常に柔軟なデータ構造であり、要素を追加したり削除したりすることが簡単にできます。

本記事ではリストから要素を削除する4つの方法を初心者向けに解説します。これらの方法を理解することで、リストの操作がより効率的に行えるようになります。

clearメソッドによる全削除

clearメソッドはリスト内のすべての要素を一度に削除することができます。リストを空にしたい場合に便利です。

my_list = [ 1, 2, 3, 4, 5]
my_list.clear()
print(my_list)  # 出力: []

このメソッドを使用すると、リスト自体は保持されますが要素はすべて削除されます。

removeメソッドによる特定の要素の削除

removeメソッドを使うと、リスト内で最初に見つかった特定の要素を削除することができます。

指定された要素が存在しない場合はエラーが発生するので注意が必要です。

my_list = [ 1, 2, 3, 2, 4]
my_list.remove(2)
print(my_list)  # 出力: [ 1, 3, 2, 4]

この例ではリスト内の最初の 2 が削除されていることがわかります。

popメソッドによる要素削除

popメソッドは指定したインデックスの要素を削除し、その要素を返します。

インデックスを指定しない場合は、リストの末尾の要素が削除されます。

my_list = [ 1, 2, 3, 4, 5]
removed_element = my_list.pop(2)
print(removed_element)  # 出力: 3
print(my_list)  # 出力: [ 1, 2, 4, 5]

このメソッドは要素を削除しつつその値を返すため、削除した要素が必要な場合に便利です。

delステートメントによる削除

delステートメントはリスト内の特定のインデックスの要素を削除するために使われます。

また、リスト全体を削除することも可能です。

my_list = [ 1, 2, 3, 4, 5]
del my_list[ 1]
print(my_list)  # 出力: [ 1, 3, 4, 5]

# リスト全体を削除
del my_list
# print(my_list)  # ここでエラー: 'my_list' が存在しない

delを使ってリスト全体を削除した場合、リストそのものが存在しなくなります。

メソッドとステートメントの違い

  1. メソッド: 特定のオブジェクトに関連付けられた関数。例えばclearremovepop はすべてリスト等のオブジェクトに対して動作する関数、すなわちメソッドである。
    • clear: リスト内のすべての要素を削除する。
    • remove: 指定した要素を削除する。
    • pop: 指定したインデックスの要素を削除し、その要素を返す。
  2. ステートメント: プログラムの制御を行う命令で、構文的に決まった動作を持つもの。特定のオブジェクトに関連付けられたものではなく、より汎用的に使われる。

まとめ

Pythonにはリストから要素を削除するための便利な方法がいくつか用意されています。

clearメソッドで全ての要素を削除したり、removepopで特定の要素を削除したり、delを使って柔軟に要素を扱うことが可能です。

用途に応じて最適な削除方法を選んでください。

練習問題4-2:リストの要素を削除操作をマスターしよう

リストから要素を削除する方法を学習するためのプログラムを作成しましょう。

まず果物の名前をリストに格納し、そのリストから要素を削除する操作を行います。

clearremovepop メソッドや del ステートメントを使用して、リストの要素をさまざまな方法で削除しましょう。

この問題の要件

以下の要件に従ってコードを完成させてください。

  • 変数 fruits["りんご", "バナナ", "みかん", "いちご", "ぶどう"] というリストを格納すること。
  • clear メソッドを使用してリストの全ての要素を削除し、その結果を表示すること。
  • 変数 fruits に再び ["りんご", "バナナ", "みかん", "いちご", "ぶどう"] を格納すること。
  • remove メソッドを使用してリストから バナナ を削除し、その結果を表示すること。
  • pop メソッドを使用してリストからいちごを削除し、その要素とリストの状態を表示すること。
  • del ステートメントを使用してインデックス 1 の要素を削除し、その結果を表示すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

リストを clear した結果: []
バナナを remove した結果: ['りんご', 'みかん', 'いちご', 'ぶどう']
いちごを pop した結果: ['りんご', 'みかん', 'ぶどう']
削除された要素: いちご
インデックス1の要素を del した結果: ['りんご', 'ぶどう']

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:リスト fruits に5つの果物の名前を格納
2:clear メソッドを使用してリスト fruits の全要素を削除
3:削除後のリストの内容を print で出力
4:リスト fruits に再び5つの果物の名前を格納
5:remove メソッドを使用してリストから「バナナ」を削除
6:削除後のリストの内容を print で出力
7:pop メソッドを使用してインデックス2の要素を削除し、その要素を変数 removed_fruit に代入
8:削除後のリストの内容を print で出力
9:削除された要素(removed_fruit)を print で出力
10:del ステートメントを使用してインデックス1の要素を削除
11:削除後のリストの内容を print で出力

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

# リストの要素削除を学習するためのコード

# リストを作成
fruits = ["りんご", "バナナ", "みかん", "いちご", "ぶどう"]

"""【穴埋め問題1】
ここにリストの全ての要素を削除する clear メソッドを使ったコードを書いてください。
"""

print("リストを clear した結果:", fruits)  # 出力: リストを clear した結果: []

# 再びリストを作成
fruits = ["りんご", "バナナ", "みかん", "いちご", "ぶどう"]

"""【穴埋め問題2】
ここに remove メソッドを使って、リストから「バナナ」を削除するコードを書いてください。
"""

print("バナナを remove した結果:", fruits)  # 出力: バナナを remove した結果: ['りんご', 'みかん', 'いちご', 'ぶどう']

"""【穴埋め問題3】
ここに pop メソッドを使って、インデックス2の要素を削除し、その要素を変数 removed_fruit に代入するコードを書いてください。
"""

print("インデックス2の要素を pop した結果:", fruits)  # 出力: インデックス2の要素を pop した結果: ['りんご', 'みかん', 'ぶどう']
print("削除された要素:", removed_fruit)  # 出力: 削除された要素: いちご

"""【穴埋め問題4】
ここに del ステートメントを使って、インデックス1の要素を削除するコードを書いてください。
"""

print("インデックス1の要素を del した結果:", fruits)  # 出力: インデックス1の要素を del した結果: ['りんご', 'ぶどう']

 

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



解答例と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

# リストの要素削除を学習するためのコード

# リストを作成
fruits = ["りんご", "バナナ", "みかん", "いちご", "ぶどう"]

# リストの全ての要素を削除する場合は clear メソッドを使います
fruits.clear()
print("リストを clear した結果:", fruits)  # 出力: リストを clear した結果: []

# 再びリストを作成
fruits = ["りんご", "バナナ", "みかん", "いちご", "ぶどう"]

# remove メソッドを使って、特定の要素(バナナ)を削除します
fruits.remove("バナナ")
print("バナナを remove した結果:", fruits)  # 出力: バナナを remove した結果: ['りんご', 'みかん', 'いちご', 'ぶどう']

# pop メソッドを使って、インデックス2の要素(いちご)を削除し、その要素を返します
removed_fruit = fruits.pop(2)
print("インデックス2の要素を pop した結果:", fruits)  # 出力: インデックス2の要素を pop した結果: ['りんご', 'みかん', 'ぶどう']
print("削除された要素:", removed_fruit)  # 出力: 削除された要素: いちご

# del ステートメントを使って、インデックス1の要素を削除します
del fruits[ 1]
print("インデックス1の要素を del した結果:", fruits)  # 出力: インデックス1の要素を del した結果: ['りんご', 'ぶどう']

正解コードの解説

Pythonのリストは複数の値を一つの変数にまとめて保持できるデータ型です。

このコードでは、4つの代表的な要素削除方法を学びます。

リストを作成する

fruits = ["りんご", "バナナ", "みかん", "いちご", "ぶどう"]

ここでは「fruits」という名前のリストを作成しています。

このリストには5つの果物が格納されています。

clearメソッドで全ての要素を削除する

fruits.clear()

clearメソッドはリスト内のすべての要素を一度に削除するために使用します。

この操作を行うとリストは空になります。よって上記のコードを実行すると、fruitsリストの中身は空([])になります。

removeメソッドで特定の要素を削除する

fruits.remove("バナナ")

removeメソッドはリストから指定した要素を削除します。

この例では、「バナナ」をリストから取り除いています。

注意点として、removeメソッドは最初に見つかった要素だけを削除します。同じ要素が複数存在する場合は、2つめ以降は削除されません。

popメソッドでインデックスを指定して削除する

removed_fruit = fruits.pop(2)

popメソッドは指定したインデックスの要素を削除し、その削除した要素を返します。

ここではインデックス2(3番目)の要素を削除し、その値をremoved_fruitという変数に格納しています。

インデックスは0から始まるので、3番目の要素は「いちご」になります。

delステートメントで特定の位置の要素を削除する

delステートメントは指定したインデックスの要素を削除します。

この例ではインデックス1の要素(「みかん」)をリストから削除しています。

delはメソッドではなくPythonの文法として提供されているため、直接操作を行う場合に使用します。

まとめ

今回のコードではPythonでリストの要素を削除する代表的な方法を学びました。

clearでリスト全体を空にしたり、removepopで特定の要素を削除する方法を理解することで、リストの操作が自在にできるようになります。

リスト操作はプログラミングの基本的なスキルの一つですので、ぜひ繰り返し練習してください。

<<前の問題 問題集Top 次の問題>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Python記事トップへ戻る
    トップページへ戻る