Python | リストから重複する要素を削除する方法

Python リスト,Python

Python | リストから重複する要素を削除する方法

Pythonのリストから重複する要素を削除する方法とサンプルコードを紹介しています。

確認環境

Windows11 ローカル
Python python-3.11.1

set()関数でリストから重複する要素を削除する

Pythonのset()関数を使って一度set型にする事で重複した要素を削除し、再度list()関数でリストに戻す事で、リストから重複する要素を削除する事ができます。

set型は常にユニークな要素のみを持つデータ型で、重複するデータは削除するという特性を利用しています。

サンプルでは以下の手順でリストから重複する要素を削除しています。

  1. 重複する値を持つ対象のリストを用意する
  2. 対象のリストをset()関数でset型に変換する
  3. set型になり重複する要素が消えたデータをlist()関数でリスト型に戻す

以下のサンプルコードでは要素に「apple」が複数あるリストから重複する要素を削除して、「apple」がひとつしかないリストを作成しています。

data_list = ["banana", "apple", "orange", "apple", "grape"]

# リストから重複した要素を削除する
data_list = list(set(data))

print(data_list)
# ['apple', 'orange', 'grape', 'banana']

上記の方法の場合、要素の順番を維持しない事に注意が必要です。

重複する要素を削除しつつ、順番を維持したリストが必要な場合は以下の方法で実装可能です。

data_list = ["banana", "apple", "orange", "apple", "grape"]


# リストから重複する要素を削除する
data_list = [x for i, x in enumerate(data_list) if data_list.index(x) == i]

print(data_list)
# ['apple', 'orange', 'grape', 'banana']