Python の list の重複要素の削除方法には、下記の2種類があります。
- 元のlistの順序を保持しない: set()
- 元のlistの順序を保持する: sorted()
元のlistの順序を保持しない: set()
set は重複した要素をもたない要素の集合で、順序も持ちません。この特性を生かして、list を set() 渡して set に変換することで、重複した要素が削除されます。
test_list = [2, 0, 0, 2]
print(set(test_list))
# {0, 2}
list に戻したい場合は、list() で戻すことができます。
print(list(set(test_list)))
# [0, 2]
ただし、この方法の場合、元の list の順番を保持しませんので、元の list の順番を保持する必要がある場合には使用することができません。
元のlistの順序を保持する: sorted()
元の list の順番を保持した状態で、重複した要素を削除したい場合には、key として index を使用して sortd() を使用します。
test_list = [2, 0, 0, 2]
print(sorted(set(test_list), key=test_list.index))
# [2, 0]
コメント