Pythonでは、リストから重複を削除し、その結果をソートする方法がいくつかあります。
ビルトイン関数を使用する方法
Pythonのビルトイン関数set()
とsorted()
を使用して、リストをソートし、重複を削除することができます。
myList = sorted(set(myList))
この方法は、Python 2.3以上でset()
が、Python 2.4以上でsorted()
がビルトイン関数として利用可能であるため、これらのバージョンを使用している場合に適しています。
ただし、この方法はリストの元の順序を保持しないため、順序が重要な場合は別の方法を検討する必要があります。
順序を保持しながら重複を削除する方法
順序を保持しながらリストから重複を削除するには、以下のような関数を使用することができます。
def remove_duplicates(seq):
seen = set()
seen_add = seen.add
return [x for x in seq if not (x in seen or seen_add(x))]
この関数は、Pythonの動的な性質を利用しています。各イテレーションでseen.add
を解決することは、ローカル変数を解決することよりもコストがかかります。seen.add
はイテレーションの間に変更される可能性があり、ランタイムはそれを規定することができません。安全を確保するために、それは毎回オブジェクトをチェックする必要があります。
これらの方法を使用することで、Pythonのリストから重複を効率的に削除し、結果をソートすることができます。適切な方法を選択するためには、特定の要件(例えば、順序の保持、パフォーマンスなど)を考慮することが重要です。