・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方
それなら、キッカケエージェントにご相談!
キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!
また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!
転職エージェントに迷っている方、まずは無料でキャリア相談から!
(この記事は2024年02月20日に投稿されました。)
PythonでList(リスト)内の指定した要素を削除するにはremove()使用します。
remove()とは、イテレータから指定した値を取り除く関数になります。
指定した値を取り除くため、List(リスト)に対してremove()を使用することでリストから指定した要素を削除することができます。
そして、remove()は1次元List(リスト)だけでなく、2次元List(リスト)や3次元List(リスト)のような多次元リストの要素を削除することができます。
削除したい要素を指定して削除することができるためもし、List(リスト)からこの要素を削除したいと思った場合はremove()を使用しましょう。
今回はPythonのremove()でList(リスト)内の指定した要素を削除する方法について紹介していきます。
List(リスト)から指定した要素を削除したい場合
remove()とは
remove()とはイテレータから指定した要素を取り除くことができる関数になります。
そのため、List(リスト)に対して使用することでリストから対象の要素を削除します。
remove()の書き方
remove()の書き方は下記のようになります。
1 | 対象のList.remove('削除する要素') |
対象のListの後ろにremove()と追記し、括弧の中に必須のパラメータを1つ指定することで使用することができます。
remove()のパラメータ
remove()のパラメータは下記のようになります。
- 削除する要素:(必須)
List(リスト)から削除したい要素を指定する。
remove()は必須なパラメータとして「削除する要素」を指定します。
remove()の返り値
remove()の返り値はありません。
remove()でList(リスト)の指定した要素を削除するサンプルコード
remove()でList(リスト)内の指定した要素を削除するサンプルコードをご紹介します。
ここでは下記の3パターンでremove()を使用します。
- 削除する要素が存在する場合
- 削除する要素が存在しない場合
- 削除する要素が複数存在する場合
- 削除する要素が同一で型が異なる場合
削除する要素が存在する場合
削除する要素が存在する場合にremove()を使用すると、List(リスト)から指定した要素を削除します。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2] print(list1) print('● remove()使用後-1') list1.remove(678) print(list1) print('● 対象のリスト-2') list2 = ['JavaScript', 'PHP', 'Python', 'C#', 'Java'] print(list2) print("● remove()使用後-2") list2.remove('Python') print(list2) |
実行結果
remove()でList(リスト)から指定した要素を削除しています。
「678」と「Python」はList(リスト)内に存在するため、指定した要素が削除されたList(リスト)がそれぞれ表示されています。
削除する要素が存在しない場合
削除する要素が存在しない場合にremove()を使用すると、エラーが発生します。
● main.py
1 2 3 4 5 6 7 | print('● 対象のリスト') list1 = ['JavaScript', 'PHP', 'Python', 'C#', 'Java'] print(list1) print("● remove()使用後") list1.remove('Perl') print(list1) |
実行結果
remove()でList(リスト)から指定した要素を削除しています。
「Perl」はList(リスト)内に存在しないため、エラーが表示されています。
削除する要素が複数存在する場合
削除する要素が複数存在する場合にremove()を使用すると、最初に格納された要素を削除するようになります。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 678, 2] print(list1) print('● remove()使用後-1') list1.remove(678) print(list1) print('● 対象のリスト-2') list2 = ['JavaScript', 'PHP', 'Python', 'C#', 'PHP', 'Java'] print(list2) print("● remove()使用後-2") list2.remove('PHP') print(list2) |
実行結果
remove()でList(リスト)から指定した要素を削除しています。
「678」と「PHP」はList(リスト)内に複数存在するため、3番目の「678」と2番目の「PHP」が削除されたList(リスト)がそれぞれ表示されています。
削除する要素が同一で型が異なる場合
削除する要素が同一で型が異なる場合にremove()を使用すると、こちらもエラーが発生します。
● main.py
1 2 3 4 5 6 7 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2] print(list1) print('● remove()使用後-1') list1.remove('678') print(list1) |
実行結果
remove()でList(リスト)から指定した要素を削除しています。
「675」は要素として存在しますが、文字列型の「675」はList(リスト)内に存在しないため、エラーが表示されています。
remove()で多次元List(リスト)の指定した要素を削除するサンプルコード
remove()は1次元リストだけでなく、多次元List(リスト)の要素を削除することもできます。
多次元List(リスト)の場合はリストの中にリストが存在するため、繰り返し処理で深い階層にアクセスして処理を行う必要があります。
そのため、ここではremove()で多次元List(リスト)から指定した要素を削除するサンプルコードをご紹介します。
2次元List(リスト)の場合
2次元List(リスト)に対してremove()を使用します。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | print('● 対象の2次元リスト') list1 = [ [1, 2, 3, 4, 5, 9999], [10, 20, 30, 40, 50, 9999], [100, 200, 300, 400, 500, 9999], [1000, 2000, 3000, 4000, 5000, 9999] ] print(list1) print('● remove()使用後-1') for list1_n in list1: list1_n.remove(9999) print(list1) print('● remove()使用後-2') list1_remove = list1.remove([100, 200, 300, 400, 500]) print(list1) |
実行結果
remove()で2次元List(リスト)から指定した要素を削除しています。
そのため、2次元List(リスト)内の1次元リストに格納されている「9999」が削除された2次元List(リスト)が表示されています。
また、2次元List(リスト)に格納されている「[100, 200, 300, 400, 500])」が削除された2次元List(リスト)が表示されています。
3次元List(リスト)の場合
3次元List(リスト)に対してremove()を使用します。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | print('● 対象の3次元リスト') list1 = [ [['JavaScript', 'C#', 'PHP', 'C'],['Python', 'C', 'Swift', 'Java'], ['Ruby', 'C']], [['Perl', 'C', 'C++'], ['SQL', 'Go', 'VB', 'C'], ['Ruby', 'C']] ] print(list1) print('● remove()使用後-1') for list1_n in list1: for list1_nm in list1_n: list1_nm.remove('C') print(list1) print('● remove()使用後-2') for list1_n in list1: list1_n.remove(['Ruby']) print(list1) print('● remove()使用後-3') list1.remove([['Perl', 'C++'], ['SQL', 'Go', 'VB']]) print(list1) |
実行結果
remove()で3次元List(リスト)から指定した要素を削除しています。
そのため、3次元List(リスト)内の1次元リストに格納されている「C」が削除された3次元List(リスト)が表示されています。
そして、3次元List(リスト)内の2次元リストに格納されている「[‘Ruby’]」が削除された3次元List(リスト)が表示されています。
また、3次元List(リスト)に格納されている「[[‘Perl’, ‘C++’], [‘SQL’, ‘Go’, ‘VB’]]」が削除された3次元List(リスト)が表示されています。
remove()でList(リスト)の指定した複数の要素を削除する場合
remove()でList(リスト)から指定の複数の要素を削除するには繰り返し処理を使用します。
繰り返し処理とは、指定した処理を順番に繰り返して行う処理となります。
そのため、削除したい要素に対してremove()の繰り返しを行うことで、複数の要素を削除することが可能になります。
● main.py
1 2 3 4 5 6 7 8 9 | print('● 対象のリスト') list1 = ['JavaScript', 'PHP', 'Python', 'C#', 'Java', 'Swift'] print(list1) print("● remove()使用後") remove_lists = ['PHP', 'Java'] for remove_list in remove_lists: list1.remove(remove_list) print(list1) |
実行結果
remove()でList(リスト)から指定した複数の要素を削除しています。
そのため、「PHP」と「Java」が削除されたList(リスト)が表示されています。
remove()を使用する際の注意点
先ほどまでremove()でList(リスト)から指定した要素を削除してきましたが、使用する際に注意点があります。
それは、削除する要素が見つからない場合は処理が途中で終わってしまうということです。
例えば、処理中にremove()を使用して削除する要素がList(リスト)内に存在しなかった場合、エラーが発生して処理がそこで終わってしまいます。
つまりエラーの場合、最後まで処理を行わずに処理全体が強制終了してしまうということになってしまうのです。
それを防ぐために、下記のコードのような例外処理を記述して途中で処理を終わらせないようにすることが必要になってきます。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | try: print('● 対象のリスト') list1 = ['JavaScript', 'PHP', 'Python', 'C#', 'Java'] print(list1) print("● remove()使用後-1") list1.remove('Python') print(list1) print("● remove()使用後-2") list1.remove('Perl') except Exception as e: print(e) finally: print('処理終了') |
実行結果
例外処理を追記してremove()でList(リスト)から指定した要素を削除しています。
「Python」はList(リスト)内に存在するため削除していますが、「Perl」はList(リスト)内に存在しないため、本来はエラーが発生するのですが、例外処理を追記しているため、最後まで処理が行われています。
remove()でList(リスト)の要素を削除した実際のケース
remove()でList(リスト)の要素を削除した実際のケースについてご紹介します。
例えば、remove()を使用して登録されたメールアドレスを選択して削除するようなコードを作成します。
● index.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <!DOCTYPE html> <html lang="ja"> <head> <title>remove()でList(リスト)から対象の要素を削除する</title> <meta charset="utf-8"/> </head> <body> <h2>削除するアドレスを選択</h2> <div> <form action="/result" method="POST"> <ul> {% for address in addresses %} <li><input type='checkbox' name= 'address' value = '{{ address }}'>{{ address }}</li> {% endfor %} </ul> <button type="submit">削除</button> </form> </div> </body> </html> |
● result.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <!DOCTYPE html> <html lang="ja"> <head> <title>remove()でList(リスト)から対象の要素を削除する</title> <meta charset="utf-8"/> </head> <body> {% if flag == 0 %} <h1>選択したアドレスの削除が完了しました。<h1> {% else %} <h1>選択したアドレスの削除ができませんでした。</h1> <p>{{ msg }}</p> {% endif %} <p><a href ='http://'>topに戻る</a></p> </body> </html> |
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | from flask import Flask, render_template, request app = Flask(__name__) address_list = ['AAA@example.com' ,'BBB@example.com' , 'CCC@example.com' , 'DDD@example.com' , 'EEE@example.com' , 'FFF@example.com', 'GGG@example.com'] reg_list = [] @app.route('/') def index(): return render_template('index.html', addresses = address_list) @app.route('/result', methods=['POST']) def result(): error_flag = 0 try: address = request.form.getlist('address') print(address) for address_item in address: address_list.remove(address_item) error_msg = '' except Exception as e: print(e) error_msg = '例外のエラーが発生しました。' error_flag = 1 finally: return render_template('result.html',flag = error_flag, msg = error_msg) if __name__ == '__main__': app.run() |
実行結果
remove()で登録されたメールアドレスを選択して削除しています。
そのため、チェックボックスで選択したメールアドレスがリストから削除されています。
remove()以外でList(リスト)から要素を削除する方法の一覧
Pythonではremove()以外でもList(リスト)から要素を削除する方法が存在します。
そのためここでは、remove()以外でList(リスト)から要素を削除する方法の一覧についてご紹介します。
pop()
pop()とはインデックスを指定してイテレータから要素を削除する関数になります。
そのため、List(リスト)に対して使用することでリストから対象の要素を削除することができまます。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2] print(list1) print('● pop()使用後-1') list1_pop = list1.pop(0) print(list1) print('● 対象のリスト-2') list2 = ['JavaScript', 'PHP', 'Python', 'C#', 'Java'] print(list2) print("● pop()使用後-2") list2_pop = list2.pop(4) print(list2) |
実行結果
pop()でList(リスト)から対象の要素を削除しています。
そのため、1番目である「175」と5番目である「Java」が削除されたList(リスト)かが表示されています。
もし、pop()について詳しく知りたい場合は下記の記事をご参考下さい。
del()
delとは指定したデータを取り除くことができる構文になります。
そのため、リストに対して使用すると指定した要素をリストから削除することができます。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2] print(list1) print("● del使用後-1") del list1[3] print(list1) print('● 対象のリスト-2') list2 = ['JavaScript', 'PHP', 'Python', 'C#', 'Java'] print(list2) print("● del使用後-2") del list2[0] print(list2) |
実行結果
delでList(リスト)から対象の要素を削除しています。
そのため、4番目である「968」と1番目である「JavaScript」が削除されたList(リスト)が表示されています。
clear()
clear()とはイテレータの要素をすべて削除する関数になります。
そのため、List(リスト)に使用すると、リストに格納された全ての要素を削除することができます。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2] print(list1) print("● clear()使用後-1") list1.clear() print(list1) print('● 対象のリスト-2') list2 = ['JavaScript', 'PHP', 'Python', 'C#', 'Java'] print(list2) print("● clear()使用後-2") list2.clear() print(list2) |
実行結果
clear()でList(リスト)から全ての要素を削除しています。
そのため、空のList(リスト)が表示されています。
List(リスト)に指定した要素を追加する場合
List(リスト)に指定した要素を追加する場合はappend()を使用します。
append()とは、指定した要素をイテレータの末尾に追加する関数になります。
そのため、今回ご紹介しているremove()で削除した要素をappend()で再び格納することができます。
● main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | print('● 対象のリスト-1') list1 = [175, 346, 678, 968, 258, 2] print(list1) print("● append()使用後-1") list1_remove = list1.append(9999) print(list1) print('● 対象のリスト-2') list2 = ['JavaScript', 'PHP', 'Python', 'C#', 'Java'] print(list2) print("● append()使用後-2") list2.append('Swift') print(list2) |
実行結果
append()で指定した要素をList(リスト)に追加しています。
そのため、末尾に「9999」と「Swift」が追加されたList(リスト)がそれぞれ表示されています。
まとめ
● remove()とはイテレータに格納された対象の値を取り除く関数である。
● remove()を使用する場合は、下記の引数を指定して使用する。
・削除する要素:(必須)
● 削除する要素が存在する場合にremove()を使用すると、List(リスト)から指定した要素を削除する。
● 削除する要素が存在しない場合にremove()を使用すると、エラーが発生する。
● 削除する要素が複数存在する場合にremove()を使用すると、List(リスト)から最初に格納された指定の要素を削除する。
● 削除する要素が同一で型が異なる場合にremove()を使用すると、エラーが発生する。
● remove()は1次元(List)リストだけでなく、多次元List(リスト)に対しても使用できる。
● remove()でList(リスト)から複数の要素を削除するには繰り返し処理と組み合わせて使用する。
● remove()を使用する際の注意点としてはエラーの際には処理が途中で終わってしまうことである。
(例外処理を追記して対応する)
● PyhtonでList(リスト)から要素を削除するにはremove()以外にも下記のような方法がある。
・pop()
(インデックスを指定してイテレータから指定した要素を取り除く関数)
・del
(インデックスを指定してオブジェクトから指定したデータを削除する構文)
・clear()
(イテレータから要素を全て削除する関数)
● List(リスト)に指定した要素を追加する場合はappend()を使用する。