Pythonでリストの中から指定された値と一致するものを全て削除する関数を定義し実装してみます。
■今回の環境(Python)
Google Colaboratory(Google Colab),記事作成時点ではPython 3.9.16が用いられる。
■リストの中から指定された値と一致するものを全て削除する関数の定義
では、早速リスト内包表記を用いてリストの中から指定された値と一致するものを全て削除する関数を定義するために、コードを書いていきます。
■コード
def remove_all(lst, val): return [x for x in lst if x != val] numbers = [1, 2, 3, 2, 4, 2] new_numbers = remove_all(numbers, 2) print(new_numbers)
今回はまずdef文を用いてremove_all()という関数を定義します。括弧内には第1の引数,パラメータとしてlstを設定し、第2の引数,パラメータとしてvalを設定します。設定後、関数が呼び出された時の処理として、角括弧”[ ]”を用いてリストを定義します(リスト内包表記)。そのリスト内でfor文を用いてlstで受け取ったリスト内の要素を順番にx変数に格納していきます。格納後、if文を用いてx変数に格納された要素(数値)とvalで受け取った要素(数値)を代入演算子”!=(クエッションマークとイコール)”を用いて等しくない場合という条件を設定します。この条件が真(True)だった場合は、その要素(数値)を新しいリストに追加します。偽(False)だった場合は、要素(数値)を新しいリストに追加しません。そしてreturnとして新しいリストが返されるという処理になります。
関数を定義後、角括弧”[ ]”を用いてnumbersというリストを定義し、その中に要素(数値)を格納します。格納後、new_numbersという変数を定義し、その中でremove_all()を呼び出します。その時に括弧内に引数,パラメータとして第1の引数,パラメータにnumbers、第2の引数,パラメータにリスト内から全て削除する要素(数値)を渡します。これでremove_all()の処理が実行され、new_numbersに結果が格納されます。
最後にnew_numbers変数内の情報をprint()を用いて出力します。
■実行・検証
このコード(セル)を保存し、Google Colaboratory上で、セルを実行してみます。
実行してみると、リスト内包表記内でリストの中から指定された値と一致するものを全て削除する関数を定義し、定義した関数を呼び出し、処理を実行。実行後、新しいリストを出力させることができました。新しいリスト内では、指定した数値と一致するものが全て取り除かれていた。
改めてコードを確認すると、プログラミング初心者の人は、リスト内包表記でどのようなプロセスで処理が実行されているのかをしっかりと理解しておいた方が良いと感じた。
コメント