前回までの内容ではリスト内部のデータを参照したり、入れ替えたり、新しい値を追加したりしていきました。
今回はリストの一部のデータを削除する方法について解説します。削除にはいくつかやり方があるので一つ一つ見ていきます。
削除方法① Delを使用してデータを削除する
「Del」とはリストに対して指定したインデックスのデータを削除する文です。書き方は以下のように書きます。

またスライスを使用することでリストの一部を部分的に削除することができます。

それでは実際にコードを見てみましょう。
1 2 3 4 |
list = ["ぷよ" , "ぷよ" , "おじゃまぷよ" , "おじゃまぷよ" , "ぷよ"] del list[2:4] print(list) #['ぷよ', 'ぷよ', 'ぷよ'] |
指定した範囲だけ削除されていることがわかると思います。
削除方法② スライスを指定する
Del文を使う以外にスライスを指定して直接削除する方法もあります。考え方は指定したスライスに対して空のリストを埋め込むようなイメージです。ただし、この場合は一つの要素を削除したい場合でもインデックスで指定するのではなく、スライスで指定してあげる必要があります。インデックスで指定するとデータのみの指定となるので、リストの中にさらに空のリストが生成されます。

実際にコードで確認します。
1 2 3 4 5 6 7 8 9 10 |
list = ["ぷよ" , "ぷよ" , "おじゃまぷよ" , "おじゃまぷよ" , "ぷよ"] list[2:4] = [] print(list) #['ぷよ', 'ぷよ', 'ぷよ'] #一つの要素だけ削除 piza = ["ピザ" , "ピザ" , "ヒザ" , "ピザ"] piza[2:3] = [] print(piza) #['ピザ', 'ピザ', 'ピザ'] |
削除方法③ インデックスを指定して必要な個所だけ抽出する
最後に必要な個所だけ取り出して、いらない箇所は削除する方法です。削除方法②とは逆の考え方ですね。リストをスライスで指定し、元のリストを更新するようなイメージです。
すでに、リスト①の記事でもさりげなくやっておりますが再掲します。

なお、こちらもインデックスで指定すると、データのみの抽出となってしまい、リストではなくなってしまいますので、リストとして抽出する場合はスライスで指定してあげる必要があります。
実際にコードで確認します。
1 2 3 4 |
list = ["ぷよ" , "ぷよ" , "おじゃまぷよ" , "おじゃまぷよ" , "ぷよ"] list = list[0:2] + list[4:5] print(list2) #['ぷよ', 'ぷよ', 'ぷよ'] |
以上で、リストのデータの要素の削除については完了です。
上記以外にも関数を使った削除方法がございますがそれはまた別の記事で解説します。
関数の使用方法の前にオブジェクトの概念について解説しないとイメージを持ちづらいかと思いますので。
今回はここまでです。お疲れ様でした。
コメント