リストから重複を削除する方法 Python
⚡ スマートサマリー
重複を削除する Python リストは、set()、dict.fromkeys()、ループ、リスト内包表記、NumPyやPandasのライブラリメソッドなど、いくつかの組み込み方法で作成できます。それぞれ、順序の保持と速度のバランスが取られています。

Python リストから重複を削除する
リストはさまざまなものを含むコンテナです Python オブジェクトは整数、単語、値などです。他のプログラミング言語の配列に相当します。
ここでは、指定されたリストから重複を削除するさまざまな方法を見ていきます。 Python.
方法 1) Set を使用してリストから重複を削除する
リストから重複要素を削除するには、組み込み関数 set() を使用できます。set() メソッドの特徴は、重複のない要素を返すことです。
リスト [1,1,2,3,2,2,4,5,6,2,1] があります。このリストには重複する要素が多数含まれているため、それらを削除して重複のない要素のみを取得する必要があります。このリストを組み込み関数 set() に渡します。 Later 最終的なリストは、組み込み関数 list() を使用して表示されます。
得られる出力は、重複する要素がすべて削除された、異なる要素の集合です。
例:
my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))
出力:
[1, 2, 3, 4, 5, 6]
方法2) 一時リストを使用する
指定されたリストから重複を削除するには、空の一時リストを使用できます。そのためにはまず、重複を含むリストをループ処理し、重複のない項目を一時リストに追加する必要があります。 Later 一時リストがメインリストに割り当てられます。
例:
一時リストを使用した動作例を以下に示します。
my_list = [1, 2, 3, 1, 2, 4, 5, 4 ,6, 2] print("List Before ", my_list) temp_list = [] for i in my_list: if i not in temp_list: temp_list.append(i) my_list = temp_list print("List After removing duplicates ", my_list)
出力:
List Before [1, 2, 3, 1, 2, 4, 5, 4, 6, 2] List After removing duplicates [1, 2, 3, 4, 5, 6]
方法3) 辞書を使用する
collectionsからOrderedDictをインポートすることで、指定されたリストから重複要素を削除できます。これはPython 2.7以降で利用可能です。OrderedDictは、キーが存在する順序で重複のない要素を返します。
リストを利用し、OrderedDict で利用可能な fromkeys() メソッドを使用して、リストから一意の要素を取得してみましょう。
OrderedDict.fromkeys() メソッドを使用するには、以下に示すように collections から OrderedDict をインポートする必要があります。
from collections import OrderedDict
OrderedDict.fromkeys() メソッドを使用して重複を削除する例を以下に示します。
例:
from collections import OrderedDict my_list = ['a','x','a','y','a','b','b','c'] my_final_list = OrderedDict.fromkeys(my_list) print(list(my_final_list))
出力:
['a', 'x', 'y', 'b', 'c']
Python バージョン3.5以降では、通常のdict.fromkeys()メソッドを使用してリストから重複のない要素を取得できます。dict.fromkeys()メソッドは一意のキーを返し、重複する値を取り除くのに役立ちます。
リストから一意の項目を取得するために、dict.fromkeys() をリストに対して使用する例を以下に示します。
例:
my_list = ['a','x','a','y','a','b','b','c'] my_final_list = dict.fromkeys(my_list) print(list(my_final_list))
出力:
['a', 'x', 'y', 'b', 'c']
方法4) forループを使用する
使い方 forループ、項目のリストを調べて重複を削除します。
まず、配列を空に初期化します(myFinallist = [])。forループ内で、リスト内の項目が配列myFinallistに存在するかどうかを確認します。項目が存在しない場合は、append()メソッドを使用して項目を配列myFinallistに追加します。
したがって、重複する項目が見つかった場合、それは既に配列 myFinallist に存在しているため、挿入されません。それでは、以下の例で確認してみましょう。
例:
my_list = [1,2,2,3,1,4,5,1,2,6] myFinallist = [] for i in my_list: if i not in myFinallist: myFinallist.append(i) print(list(myFinallist))
出力:
[1, 2, 3, 4, 5, 6]
方法 5) リスト内包表記を使用する
リスト内包表記は Python すでに作成されているシーケンスを使用して、新しいシーケンス (リスト、辞書など) を作成するために使用される関数。これにより、長いループが削減され、コードの読みやすさと保守性が向上します。
リスト内包表記を利用して、指定されたリストから重複を削除してみましょう。
例:
my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [] [my_finallist.append(n) for n in my_list if n not in my_finallist] print(my_finallist)
出力:
[1, 2, 3, 4, 5, 6]
方法6)NumPyのunique()メソッドを使用する
NumPyモジュールのunique()メソッドを使うと、指定されたリストから重複要素を削除できます。
NumPyを使用するには、まずnumpyモジュールをインポートします。
ステップ1) NumPyモジュールをインポートします
import numpy as np
ステップ2) unique() メソッド内で重複を含むリストを使用してください。出力は tolist() メソッドを使用してリストに変換されます。
myFinalList = np.unique(my_list).tolist()
ステップ3) 最後にリストを印刷します。
print(myFinalList)
出力を含む最終的なコードは次のとおりです。
import numpy as np my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = np.unique(my_list).tolist() print(myFinalList)
出力:
[1, 2, 3, 4, 5, 6]
方法 7) Pandas メソッドを使用する
Pandas モジュールには、指定されたリストから一意の要素を提供する unique() メソッドがあります。
Pandasモジュールを使用するには:
ステップ1) Pandas モジュールのインポート
import pandas as pd
ステップ2) 重複を含むリストを unique() メソッド内で使用してください。
myFinalList = pd.unique(my_list).tolist()
ステップ3) リストを印刷します:
print(myFinalList)
出力を含む最終的なコードは次のとおりです。
import pandas as pd my_list = [1,2,2,3,1,4,5,1,2,6] myFinalList = pd.unique(my_list).tolist() print(myFinalList)
出力:
[1, 2, 3, 4, 5, 6]
方法 8) enumerate() とリスト内包表記を使用する
ここでは、リスト内包表記と enumerate() 関数を組み合わせて、重複する要素を削除します。enumerate 関数は、リスト内の各要素に対応するカウンターを持つオブジェクトを返します。例えば、(0,1)、(1,2) などです。この場合、最初の値はインデックス、2 番目の値はリストの要素です。
各要素はリスト内に存在するかどうかチェックされ、存在する場合はリストから削除されます。
例:
my_list = [1,2,2,3,1,4,5,1,2,6] my_finallist = [i for j, i in enumerate(my_list) if i not in my_list[:j]] print(list(my_finallist))
出力:
[1, 2, 3, 4, 5, 6]
