Python

Pythonのリスト(配列)から要素を削除する方法

By 2021年2月12日February 17th, 2021No Comments

Pythonでリスト(配列)の要素を削除するにはさまざまな方法があります。こちらの記事ではそれらの方法を解説しています。

Pythonでリスト(配列)から要素を削除するメソッドはclear( )、remove( )、pop( )やdel文で削除することができます。これらの方法を一つ一つチェックしていきましょう。

リスト(配列)内の全ての要素を削除できるclear( )メソッド

リスト内のすべての要素を削除する方法です。clear( )メソッドを使うと簡単にできます。下記の構文で表すことができます。

リスト.clear()

list = ["タナカ", "ヤマダ", "ウエダ", "タナカ"]
list.clear()
print(list)

結果:

[ ]


これですべてのリストの要素を削除する事ができました。このclear( )メソッドは辞書に保存されているリストをすべて削除する時などに使われています。

リスト(配列)の要素を直接指定して削除できるremove( )メソッド

remove( )を使えばリストの要素のオブジェクトを特定して削除することができます。下記の構文で表すことができます。

リスト.remove(“要素「オブジェクト」”)

list = ["タナカ", "ヤマダ", "ウエダ", "タナカ"]
list.remove("ヤマダ")
print(list)

結果:

[‘タナカ’, ‘ウエダ’, ‘タナカ’]

こちらremove( )メソッドで要素を直接指定してみます。

list = ["タナカ", "ヤマダ", "ウエダ", "タナカ"]
list. remove("タナカ")
print(list)

結果:

[‘ヤマダ’, ‘ウエダ’, ‘タナカ’]

このように最初の’タナカ’の要素だけが削除されているのが分かります。remove()メソッドは特定のリストの要素を削除したいときにオブジェクトを指定して削除する方法になります。

インデックス番号を指定してリスト(配列)内の要素を削除できるpop( )メソッド

先程のremove()は要素のオブジェクトを指定しましたがpop( )メソッドを使うとリスト内のインデックス番号を指定して要素を削除することができます。下記の構文で表すことができます。

リスト.pop(インデックス番号)

リスト内のインデックス番号とは前から0、1、2…と順に割り振られます。この場合はこちらのようになりす。

                0                1               2    3

list = [”タナカ”, “ヤマダ“, “ウエダ”, “タナカ”]

               -4                -3               -2            -1

インデックス番号は末尾から数えることもでき、その場合は上記のようにマイナス1から数えます。

さあ、それではインデックス番号を指定してリスト内の要素を削除していきましょう。

list.pop(1)
print(list)

結果:

[‘タナカ’, ‘ウエダ’, ‘タナカ’]

インデックス番号1を指定したのでこの場合の1の”ヤマダ”が削除されました。

ちなみにインデックス番号を指定せずlist.pop( )で出力するとリストの末尾の”タナカ”が削除されます。

list.pop()
print(list)

結果:

[‘タナカ’,ヤマダ’, ‘ウエダ’ ]

このようにインデックス番号を指定しない場合はリストの要素の末尾部分を削除することができます。この場合は末尾の’タナカ’が削除されました。

このようにインデックス番号を指定してリストの要素を削除するにはpop( )メソッドを使うことができます。

リスト(配列)内の指定した範囲の要素の部分文字列を削除できるdel文

指定した範囲の要素をまとめて削除したい場合にはdel文を使うことができます。下記の構文で表すことができます。

del リスト[インデックス番号]

del文では様々な削除したい要素を指定する方法があります。一つ一つみていきましょう。

まずは開始位置だけを指定して、そこから最後の要素まで削除する方法です。

下記のようなリストの要素を作ります。

list = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
del list[2:]
print(list)

結果:

[‘a’, ‘b’]

指定したインデックス番号2の位置より後のリストの要素がすべて削除されました。

del list[:2]
print(list)

結果:

[‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’]

これで指定した要素より前の部分をすべて削除することができます。

リストの要素に指定した2つのインデックス番号を指定した間の要素をすべて削除する方法もあります。

del リスト[開始インデックス:終了インデックス]

del list[2:5]
print(list)

結果:

[‘a’, ‘b’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’]

このように指定した2つのインデックス番号の間の要素をすべて削除することができました。

ステップを指定する方法もあります。ステップを指定すると、その範囲をステップ数置きに削除することができます。

del リスト[開始インデックス:終了インデックス:ステップ数]

del list[1:10:2]
print(list)

結果:

[‘a’, ‘c’, ‘e’, ‘g’, ‘i’]

ステップ指定したように2から10の間が2つ飛びにリスト内の要素が削除されているのが確認できます。

開始位置とステップだけを指定する方法もあります。

del list[1::3]
print(list)

結果:

[‘a’, ‘c’, ‘d’, ‘f’, ‘g’, ‘i’, ‘j’]

その逆に終了位置とステップ指定する方法もあります。

del list[:5:3]
print(list)

結果:

[‘b’, ‘c’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’]

このように開始位置と終了位置とステップを指定して要素は削除することができました。

その他にdel文でもリストのすべての要素を削除することができます。

del list[:]
print(list)

結果:

[ ]

これでdel文でもすべての要素を削除することができます。

まとめ

いかがだったでしょうか?Pythonでリストの要素を用途に応じて使い分けましょう。

clear( )…リスト(配列)内のすべての要素を削除することができる。

remove()…リスト(配列)内の要素(オブジェクト)を指定して削除することができる。

pop()…リスト(配列)内の要素(インデックス番号)を指定して削除することができる。

del文…リスト(配列)内の要素をより細く範囲など部分文字列を指定して削除することができる。

以上、Pythonのリストから要素を削除するメソッドはclear( ), remove( ), pop( )やdel文で削除する方法についてでした。

Udemyの動画学習でもPythonを勉強しよう!

「平日の夜の勉強会には時間が間に合わなくて参加できない」「通勤時間のわずかな隙間時間を勉強時間にあてたい」「本ではよく分からないところを動画で理解を深めたい」そんなあなたはUdemyの動画学習がお勧めです!

UdemyのPythonおすすめ33講座レビューリスト
HOSL

Author HOSL

More posts by HOSL