【Python入門】配列で要素を削除するには?対応メソッドや機能の使い方まとめ
配列から要素を削除する方法として、Pythonでは様々なメソッドや機能が用意されています。
それぞれで削除方法や使用する場面が異なるため、各手段の特徴をしっかりと理解しておくことが大切です。
この記事では、配列で要素を削除する際に使用するメソッド・機能の特徴と使い方について解説します。
各メソッド・機能の対応一覧
主な配列として「リスト/タプル/辞書/セット」がありますが、それぞれで使用できるメソッド・機能は異なります。
各データ型と対応するメソッド・機能の一覧は、以下の通りです。
配列 | pop | popitem | remove | del文 | clear |
---|---|---|---|---|---|
リスト | ● | – | ● | ● | ● |
タプル | – | – | – | – | – |
辞書 | ● | ● | – | ● | ● |
セット | △ | – | ● | – | ● |
配列に要素を追加する方法
使用するメソッド・機能によっては、要素を取り出す形で除外したり複数の要素の削除といった対応も可能です。
ここから先は、各削除方法の特徴や具体的な使い方について紹介していきます。
【pop】指定した位置の要素を削除(取り出す)
pop()
メソッドでは、リスト・辞書にて、指定した位置の要素を取り出す形で削除することができます。
位置を指定するにあたり、リストの場合は対象となる要素の番号を把握しておく必要があります。
例えば、先頭の要素を削除したいなら「0」、末尾の一つ手前であれば「-2」といった形になります。
pop()
を使用する際は、削除したい配列(変数)の後に「.pop(番号またはキー)」を記述します。
配列から除外した要素を別で保持しておきたい場合は、pop()
の結果を変数などに入れておくと便利です。
ls = ["テスト", 123, False] # lsという変数に、リストを保持
ls.pop(0) # ls(リスト)から0番目の要素を削除
print(ls) # lsの中身を表示
dc = {"key1": "テスト", "key2": 123, "key3": False} # dcという変数に、辞書を保持
val = dc.pop("key1") # dc(辞書)からキーが"key1"の要素を削除し、その値をvalという変数に保持
print(dc) # dcの中身を表示
print(val) #val(削除した要素)の中身を表示
= 実行結果 =
[123, False]
{'key2': 123, 'key3': False}
テスト
また、セット型でもpop()
を使うことはできるのですが、削除する要素が指定できませんのでご注意ください。
st = {"テスト", 123, False} # stという変数に、セットを保持
st.pop() # st(セット)から任意の要素を削除
print(st) # stの中身を表示
= 実行結果 =
{False, 123}
※ 実行後にセット内の順序が入れ替わっていますが、これは「保持している要素の種類のみを管理する」というセットの特徴によるものです
【popitem】末尾のキーと要素を削除(取り出す)
popitem()
メソッドでは、辞書における末尾(一番右側)のキー・要素を取り出す形で削除することができます。
使用する際は、削除したい辞書(変数)の後に「.popitem()」を付け加えます。
また、辞書から除外したキーや要素を別で保持しておきたい場合は、「キーの変数, 値の変数 = 辞書.popitem()」の形で記述すれば管理が可能です。
dc = {"key1": "テスト", "key2": 123, "key3": False} # dcという変数に、辞書を保持
key, val = dc.popitem() # dc(辞書)から末尾の要素を削除し、key/valという変数にそれぞれ保持
print(dc) # dcの中身を表示
print(key, val) #key(キー)とval(値)の中身を表示
= 実行結果 =
{'key1': 'テスト', 'key2': 123}
key3 False
【remove】指定した値と合致する、最初の要素を削除
remove()
メソッドでは、リスト・セットにて、指定した値と一致する要素を削除することができます。
使用する際は、削除したい辞書(変数)の後に「.remove(要素)」を付け加えます。
なお、リスト内で指定する要素が複数存在する場合、削除されるのは一番最初(左側)にある要素のみになるので注意してください。
ls = ["テスト", 123, False, "テスト", 3.14, "テスト"] # lsという変数に、リストを保持
ls.remove("テスト") # ls(リスト)から「テスト」を削除(最初の1つのみ)
print(ls) # lsの中身を表示
= 実行結果 =
[123, False, 'テスト', 3.14, 'テスト']
【del】指定した位置・範囲の要素を削除(複数可)
del
文では、リスト・辞書にて、指定した番号やキーに該当する要素を削除することができます。
使用する際は「del 配列[番号またはキー]」の形で記述するのですが、この時複数の要素を削除する方法として大きく2つあります。
- スライス機能を使い、削除する要素を範囲で指定する
- カンマ区切り( , )で複数の要素を指定する ※辞書の場合はこちらのみ
スライス機能については、以下の記事で詳しく紹介しているのでよかったら参考にしてみてください。
ls = ["テスト", 123, False, "テスト", 3.14, "テスト"] # lsという変数に、リストを保持
del ls[3:] # ls(リスト)より、番号が3以上(3~5)の要素を削除
print(ls) # lsの中身を表示
dc = {"key1": "テスト", "key2": 123, "key3": False} # dcという変数に、辞書を保持
del dc["key1"], dc["key3"] # dc(辞書)より、キーが「key1」「key3」の要素を削除
print(dc) # dcの中身を表示
= 実行結果 =
['テスト', 123, False]
{'key2': 123}
【clear】すべての要素を削除
clear()
メソッドでは、リスト・辞書・セットにて、保持されているすべての要素を削除することができます。
使用する際は、対象となる配列の後に「.clear()」を記述します。
ls = ["テスト", 123, False] # lsという変数に、リストを保持
ls.clear() # ls(リスト)の中身を削除
print(ls) # lsの中身を表示
= 実行結果 =
[]
まとめ
この記事では、配列で要素を削除する際に使用するメソッド・機能の特徴と使い方について解説しました。
メソッド・機能によって使えるデータ型や追加方法が変わってくるため、初心者にとっては少し難しく感じてしまうかもしれません。
しかし、配列を扱う上で要素の削除は必要不可欠な操作なので、これを機にしっかりと学んでおくようにしましょう。