リストの代わりに set型を使うか、リストをset型に変換します。
最新の記事があります
重複データを削除する方法
順序保証なし・高速、結果 = set型重複なしset型 = set(重複ありリスト型)
- リスト型をset型に変換すると、重複データが削除されます。
- この方法では順序が保証されません。実行するたびに順序が変わります。
- 結果は List型ではなく、set型です。
- 元のリストの内容は変更されません。
順序保証あり・低速、結果 = list型
重複なしList型 = sorted(set(重複ありリスト型), key=重複ありリスト型.index)
- リストを set 型に変換して重複を削除した後、元のリスト順にソートしています。
- 順序は保証されますが、sort 処理をする分、低速です。
- 結果はList型です。
- 元のリストの内容は変更されません。
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']
検証環境
- Python 3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:37:50) [MSC v.1916 64 bit (AMD64)] on win32
- Microsoft Windows 10 Pro Version 1909 OS Build 18363.657