Pythonでは、リストから重複を削除しつつ元の順序を保持する方法がいくつかあります。以下にその方法をいくつか紹介します。
1. setとsortedを使用する
Pythonのset
とsorted
を使用して、リストから重複を削除しつつ元の順序を保持することができます。
my_list = ['foo', 'foo', 'bar']
my_list = sorted(set(my_list))
ただし、この方法はハッシュ可能な型にのみ適用可能であり、リストなどのハッシュ不可能な型には適用できません。
2. numpy.uniqueを使用する
numpy.unique
関数を使用すると、入力配列からユニークな値を返しつつ元の順序を保持することができます。
import numpy as np
a = np.array(['b','a','b','b','d','a','a','c','c'])
_, idx = np.unique(a, return_index=True)
a = a[np.sort(idx)]
3. 辞書を使用する
Python 3.7以降では、辞書は挿入順序を保持します。そのため、辞書を使用してリストから重複を削除しつつ元の順序を保持することができます。
L = ['b', 'a', 'b', 'b', 'd', 'a', 'a', 'c', 'c']
L = list(dict.fromkeys(L))
以上の方法を使用すれば、Pythonで順序を保持したユニークなリストを作成することが可能です。適切な方法を選択して、コードをより効率的にしましょう。