Python - リスト内の重複している値を削除する(旧版)

リストの代わりに set型を使うか、リストをset型に変換します。

重複データを削除する方法

順序保証なし・高速、結果 = set型
重複なしset型 = set(重複ありリスト型)

順序保証あり・低速、結果 = list型

重複なしList型 = sorted(set(重複ありリスト型), key=重複ありリスト型.index)

set型とは?

日本語では集合型と呼ばれ、重複する要素をもたない、順序づけられていない要素の集まりです。重複データを追加すると無視されます。

list型は append() や insert() メソッドでデータの追加を行いますが、 set型は add() メソッドで行うように、データの操作方法に違いがあります。 list型を前提にプログラムを組んでいる場合は、 set型に変換した後、list型に戻します。

set型をlist型に変換

リスト型 = list(set型)

サンプルコード

testList = ['11','77', '11', '66']
# リストを set 型に変換し、重複を削除
testSet = set(testList)
print(testSet)
  # -> set {'66', '11', '77'}

# set型をリストに戻す
testList2 = list(testSet)
print(testList2)
  # -> list ['66', '11', '77']
testList = ['11','77', '11', '66']
# リストを set 型に変換し、変換結果を、元のリスト順にソート
testList = sorted(set(testList), key=testList.index)
print(testList)
  # -> list ['11', '77', '66']

検証環境

関連ページ

改訂履歴