Python でリストから重複を削除する方法

Pythonはリストから重複を削除します

リストは、整数、単語、値などのさまざまな Python オブジェクトを含むコンテナです。他のプログラミング言語の配列に相当します。

そこで、ここでは、Python で指定されたリストから重複を削除するさまざまな方法を説明します。

方法 1) Set を使用してリストから重複を削除する

リストから重複を削除するには、組み込み関数を使用できます。 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]

方法2) 一時リストを使用する

特定のファイルから重複を削除するには list、空の一時リストを利用できます。 まず、重複のあるリストをループし、一意の項目を一時リストに追加する必要があります。 その後、一時リストがメイン リストに割り当てられます。


以下は一時リストを使用した実際の例です。

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) 辞書を使用する

インポートすることで、指定されたリストから重複を削除できます。 OrderedDict コレクションから。 Python2.7以降から利用可能です。 OrderedDict は、キーが存在する順序で個別の要素を返します。

リストを活用して使ってみましょう fromkeys() OrderedDict で使用できるメソッドを使用して、リストから一意の要素を取得します。

活用するには 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']

方法4) forループを使用する

使い方 forループ、項目のリストを調べて重複を削除します。

まず配列を空に初期化します。つまり myFinallist = []for ループ内に、リスト内の項目が配列に存在するかどうかのチェックを追加します。 myFinallist。 項目が存在しない場合は、次のコマンドを使用して項目を配列 myFinallist に追加します。 append() 方法。

そのため、重複した項目が見つかった場合、その項目はすでに配列 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()メソッドを使用します。

方法 unique() Numpy モジュールからは、指定されたリストから重複を削除するのに役立ちます。

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]

方法 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 は、リスト内の各要素に対するカウンターを含むオブジェクトを返します。 たとえば、(0,1)、(1,2) などです。ここで、最初の値はインデックス、XNUMX 番目の値はリスト項目です。 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() この方法では、個別の要素が返されます。
  • インポートすることで、指定されたリストから重複を削除できます。 OrderedDictfrom コレクション。 Python2.7以降から利用可能です。 OrderedDictdict は、キーが存在する順序で個別の要素を返します。
  • for ループを使用して、項目のリストを走査して重複を削除できます。
  • 方法 unique() Numpy モジュールからは、指定されたリストから重複を削除するのに役立ちます。
  • Pandas モジュールには、 unique() 指定されたリストから一意の要素を取得するメソッド。
  • リスト内包表記と列挙の組み合わせは、リストから重複する要素を削除するために使用されます。 Enumerate は、リスト内の各要素に対するカウンターを含むオブジェクトを返します。