Pythonで集合内包表記を用いたリストの重複を削除し昇順にソートしたリストを返す関数を定義し、実装してみます。
■今回の環境(Python)
Google Colaboratory(Google Colab),記事作成時点ではPython 3.9.16が用いられる。
■集合内包表記を用いたリストの重複を削除し昇順にソートしたリストを返す関数の定義
では、集合内包表記を用いたリストの重複を削除し昇順にソートしたリストを返す関数を定義するために、コードを書いていきます。
■コード
def unique_sorted(lst): return sorted({x for x in lst}) my_list = [3, 2, 1, 2, 3, 4, 5, 5, 6] unique_list = unique_sorted(my_list) print(unique_list)
今回はまずdef文を用いてunique_sorted()という関数を定義します。括弧内には第1の引数,パラメータとしてlstを設定します。設定後、関数が呼び出された時の処理として、波括弧”{ }*”を用いて集合内包表記(set comprehension)を表記します。これで重複を許さない集合(セット,set)を作成することができます。そして、for文を用いてlstで受け取ったリスト内の要素を一つずつx変数に格納していきます。格納されたx変数内の要素は、集合内包表記(set comprehension)を表記しているため、重複を許さない集合(セット,set)に加えられます。これがfor文を用いているために、繰り返し処理され、最後にsorted()を用います。これで作成した集合(セット,set)が昇順にソートされ、これをreturnで返すという処理になります。
関数を定義後、角括弧”[ ]”を用いてmy_listというリストを定義し、その中に要素(数値)を格納します。格納後、unique_listという変数を定義し、その中でunique_sorted()を呼び出します。その時に括弧内に引数,パラメータとして第1の引数,パラメータにmy_listのリストを渡します。これでunique_sorted()の処理が実行され結果が返されます。結果がunique_listに格納。
最後にunique_list内の情報を出力します。
■実行・検証
このコード(セル)を保存し、Google Colaboratory上で、セルを実行してみます。
実行してみると、集合内包表記を用いた関数を呼び出し、リスト内の重複する要素を削除し、さらに重複する要素が削除されたリストを昇順にソート。ソート後、ソートされたリストをprint()で出力させることができました。
コメント