Pythonはリストから重複を削除します
リストは、さまざまな Python オブジェクト (整数、単語、値など) を含むコンテナーです。これは、他のプログラミング言語の配列に相当します。
ここでは、特定のリストから重複を削除するさまざまな方法について説明します。
このチュートリアルでは、次のことを学びます:
- セットを使用してリストから重複を削除
- 一時リストを使用してリストから重複を削除します。
- Dict を使用してリストから重複を削除
- for ループを使用してリストから重複を削除する
- リスト内包表記を使用してリストから重複を削除
- Numpy unique() メソッドを使用してリストから重複を削除します。
- Pandas メソッドを使用してリストから重複を削除します
- enumerate() とリスト内包表記を使用して重複を削除する
セットを使用してリストから重複を削除
リストから重複を削除するには、組み込み関数 set() を利用できます。 set() メソッドの特徴は、個別の要素を返すことです。
[1,1,2,3,2,2,4,5,6,2,1] というリストがあります。リストには多くの重複があり、それらを削除して個別の要素のみを取得する必要があります。リストは set() 組み込み関数に渡されます。後で、次の例に示すように、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]
一時リストを使用してリストから重複を削除する
特定のリストから重複を削除するには、空の一時リストを利用できます。最初に、重複のあるリストをループし、一意のアイテムを一時リストに追加する必要があります。その後、一時リストがメイン リストに割り当てられます。
一時リストを使用した実際の例を次に示します。
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]
Dict を使用してリストから重複を削除
コレクションから OrderedDict をインポートすることで、指定されたリストから重複を削除できます。 python2.7以降で利用可能です。 OrderedDict は、キーが存在する順序で個別の要素を返します。
リストを利用し、OrderedDict で利用可能な fromkeys() メソッドを使用して、リストから一意の要素を取得しましょう。
OrderedDict.fromkey() メソッドを利用するには、以下に示すように、コレクションから 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']
for ループを使用してリストから重複を削除する
for ループを使用して、アイテムのリストをトラバースして重複を削除します。
最初に配列を空に初期化します。つまり、myFinallist =[]. for ループ内で、リスト内の項目が配列 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]
リスト内包表記を使用してリストから重複を削除
リスト内包表記は、既に作成されているシーケンスを使用して新しいシーケンス (リスト、辞書など) を作成するために使用される 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]
Numpy unique() メソッドを使用してリストから重複を削除します。
Numpy モジュールの unique() メソッドは、指定されたリストから重複を削除するのに役立ちます。
Numpy の最初のインポート numpy モジュールを使用するには、次の手順に従う必要があります:
ステップ 1 ) Numpy モジュールのインポート
import numpy as np
ステップ 2) 以下に示すように、一意のメソッド内で重複するリストを使用します。出力は 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]
Pandas メソッドを使用してリストから重複を削除
Pandas モジュールには、指定されたリストから一意の要素を提供する unique() メソッドがあります。
Pandas モジュールを使用するには、次の手順に従う必要があります:
ステップ 1) インポート パンダモジュール
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]
enumerate() とリスト内包表記を使用して重複を削除
ここでは、リスト内包表記と列挙を組み合わせて、重複する要素を削除します。 Enumerate は、リスト内の各要素へのカウンターを持つオブジェクトを返します。たとえば、(0,1)、(1,2) などです。最初の値はインデックスで、2 番目の値はリスト項目です。 W
各要素がリストに存在するかどうかがチェックされ、存在する場合はリストから削除されます。
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]
まとめ
- リストから重複を削除するには、組み込み関数 set() を利用できます。 set() メソッドの特徴は、個別の要素を返すことです。
- コレクションから OrderedDict をインポートすることにより、特定のリストから重複を削除できます。 python2.7以降で利用可能です。 OrderedDictdict は、キーが存在する順序で個別の要素を返します。
- アイテムのリストを走査して重複を削除する for ループを利用できます。
- Numpy モジュールの unique() メソッドは、指定されたリストから重複を削除するのに役立ちます。
- Pandas モジュールには、指定されたリストから一意の要素を取得する unique() メソッドがあります。
- リスト内包表記と列挙の組み合わせを使用して、重複する要素をリストから削除します。 Enumerate は、リスト内の各要素に対するカウンターを持つオブジェクトを返します。
Python