Pythonで集合内包表記を用いたリストの重複を削除し昇順にソートしたリストを返す関数

スポンサーリンク

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()で出力させることができました。

コメント

タイトルとURLをコピーしました