AI ANSWERS by 1 NOTES

WEB制作、AI、Windows、アプリの使い方など様々な疑問を解決する

Pythonでリストから重複する要素を削除する

Pythonでリストから重複する要素を削除するには、set()関数を使うことができます。set()関数は、重複した要素を持たない一意な要素からなるセットを作成するため、リストから重複を削除するのに非常に便利です。

例えば、以下のようにリストを定義して重複する要素を削除することができます。

my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list))
print(unique_list)

このコードは、my_listから重複する要素を削除し、一意な要素からなるunique_listを作成します。set()関数によって作成されたセットは、元のリストの順序を保持しないため、unique_listをリストに戻すには、list()関数を使用する必要があります。

set()関数のオプション引数について

Pythonのset()関数には、以下のようなオプション引数があります。

iterable: 新しいセットに追加する要素のイテラブルを指定します。デフォルトはNoneです。

key: 要素をハッシュ化するために使用される関数を指定します。デフォルトはNoneで、要素の値をそのまま使用します。

例えば、以下のようにkey引数を使用して、文字列の長さで要素をハッシュ化することができます。

my_list = ['apple', 'banana', 'orange', 'grape', 'kiwi']
unique_set = set(my_list, key=len)
print(unique_set)

このコードは、my_listから重複する要素を削除し、一意な要素からなるunique_setを作成します。key引数によって、要素のハッシュ化に文字列の長さが使用されます。結果として、同じ長さの要素は一意な要素として扱われます。

また、set()関数はfrozenset()関数と同様に、immutable(変更不能)なセットを作成することができます。その場合、オプション引数としてiterableを指定する必要があります。以下は、immutableなセットを作成する例です。

my_tuple = (1, 2, 2, 3, 4, 4, 5)
unique_frozenset = frozenset(my_tuple)
print(unique_frozenset)

このコードは、my_tupleから重複する要素を削除し、immutableなセットからなるunique_frozensetを作成します。