こんにちは、ミナピピン(@python_mllover)です!
今回はリストの重複排除の方法について自分用にまとめておきます。Pythonでのリストの重複排除方法は大きく分けて2種類あります。
①set(集合)を使う
②for文とif文の条件式を組み合わせる
①set(集合)を使う
リストから重複したデータがあるときはリストを集合に変換することで重複する値を排除することができます。set()
は、重複した値を許容しないので、listをsetに変更すると、重複した値が削除され、その後ろに戻ってlistに変更すると、重複した値が削除されたリストになります。
list_ = [10, 22, 19, 22, 1, 10, 5]
result = list(set(list_))
print(result)
<実行結果>
[1, 5, 10, 19, 22]
②for文とif文の条件式を組み合わせる
他にもfor文とif文を使用して、直接、重複した値をフィルタ処理して除去することができます。
my_list = [10, 22, 19, 22, 1, 10, 5]
result = []
for i in my_list:
if i not in result:
result.append(i)
print(result)
<実行結果>:
[10, 22, 19, 1, 5]
この処理は内包表記でオシャレに書くこともできます。
my_list = [10, 22, 19, 22, 1, 10, 5]
result = []
[result.append(x) for x in my_list if x not in result]
print(result)
<実行結果>:
[10, 22, 19, 1, 5]
参考書籍
コメント