Hogyan távolítsuk el az ismétlődéseket a listából Python

Python duplikátumok eltávolítása a listából

A lista egy olyan tároló, amely különböző Python objektumok, amelyek lehetnek egész számok, szavak, értékek stb. Ez a tömb megfelelője más programozási nyelvekben.

Tehát itt különböző módokon fogunk eltávolítani egy adott listából az ismétlődéseket Python.

1. módszer) Távolítsa el az ismétlődéseket a listáról a Set segítségével

A másolatok listáról való eltávolításához használhatja a beépített funkciót set(). A set() metódus különlegessége, hogy különálló elemeket ad vissza.

Van egy listánk: [1,1,2,3,2,2,4,5,6,2,1]. A listának számos ismétlődése van, amelyeket el kell távolítanunk, és csak a különálló elemeket kell visszakapnunk. A listát a set() beépített funkció. Later a végső lista a gombbal jelenik meg list() beépített funkció, ahogy az alábbi példában is látható.


A kapott kimenet különálló elemekből áll, ahol az összes ismétlődő elem kikerül.
Példa

my_list = [1,1,2,3,2,2,4,5,6,2,1]
my_final_list = set(my_list)
print(list(my_final_list))

output:

[1, 2, 3, 4, 5, 6]

2. módszer) Az ideiglenes lista használata

Adott másolatok eltávolítása list, használhat egy üres ideiglenes listát. Ehhez először át kell tekintenie a duplikált listát, és hozzá kell adnia az egyedi elemeket az ideiglenes listához. Later az ideiglenes lista a fő listához van hozzárendelve.

Példa
Íme egy működő példa az ideiglenes lista használatára.

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)

output:

List Before  [1, 2, 3, 1, 2, 4, 5, 4, 6, 2]
List After removing duplicates  [1, 2, 3, 4, 5, 6]

3. módszer) Dict

A megadott listáról importálással tudjuk eltávolítani a duplikációkat OrderedDict gyűjteményekből. A python2.7-től kezdve érhető el. Az OrderedDict gondoskodik arról, hogy a különböző elemeket olyan sorrendben küldje vissza, amelyben a kulcs jelen van.

Használjunk listát és használjunk fromkeys() Az OrderedDictben elérhető módszer az egyedi elemek lekéréséhez a listából.

Kihasználni OrderedDict.fromkey() módszerrel, importálnia kell az OrderedDict gyűjteményekből, az alábbiak szerint:

from collections import OrderedDict

Íme egy példa az ismétlődések eltávolítására OrderedDict.fromkeys() módszer.

Példa

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))

output:

['a', 'x', 'y', 'b', 'c']

Tól től Python 3.5+-tól használhatjuk a normált dict.fromkeys() hogy megkapja a listából a különböző elemeket. A dict.fromkeys() A metódusok egyedi kulcsokat adnak vissza, és segítenek megszabadulni az ismétlődő értékektől.

Egy példa, amely bemutatja a működését dict.fromkeys() az egyedi tételeket tartalmazó listán a következő:

Példa

my_list = ['a','x','a','y','a','b','b','c']
my_final_list = dict.fromkeys(my_list)
print(list(my_final_list))

output:

['a', 'x', 'y', 'b', 'c']

4. módszer) For-loop használata

<p></p> for-hurok, végigjárjuk az elemek listáját a duplikációk eltávolításához.

Először inicializálja a tömböt üresbe, azaz myFinallist = [].A for cikluson belül ellenőrizze, hogy a lista elemei léteznek-e a tömbben myFinallist. Ha az elemek nem léteznek, adja hozzá az elemet a myFinalist tömbhöz a gombbal append() módszer.

Tehát amikor a duplikált elemet találjuk, az már jelen lesz a myFinalist tömbben, és nem kerül beillesztésre. Most nézzük meg ugyanezt az alábbi példában:

Példa

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))

output:

[1, 2, 3, 4, 5, 6]

5. módszer) A listaértés használata

A listaértések azok Python olyan függvények, amelyek új sorozatok (például listák, szótárak stb.) létrehozására szolgálnak már létrehozott sorozatok felhasználásával. Ez segít csökkenteni a hosszabb ciklusokat, és könnyebben olvashatóvá és karbantarthatóvá teszi a kódot.

Használjuk a listaértést, hogy eltávolítsuk a duplikációkat a megadott listából.

Példa

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)

output:

[1, 2, 3, 4, 5, 6]

6. módszer: Numpy egyedi() metódus használata.

A módszer unique() a Numpy modulból segíthet eltávolítani a duplikációt a megadott listáról.

A Numpy first import numpy modullal való együttműködéshez kövesse az alábbi lépéseket:

1 lépés) Importálja a Numpy modult

import numpy as np

Step 2) Használja a listát a duplikátumokkal az egyedi módszeren belül, az alábbiak szerint. A kimenet visszakonvertálásra kerül lista formátumba a segítségével tolist() módszer.

myFinalList = np.unique(my_list).tolist()

Step 3) Végül nyomtassa ki a listát az alábbiak szerint:

print(myFinalList)

A végső kód a kimenettel a következő:

import numpy as np
my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = np.unique(my_list).tolist()
print(myFinalList)

output:

[1, 2, 3, 4, 5, 6]

7. módszer) Panda módszerek használata

A Pandas modulnak van egy unique() módszerrel, amely megadja nekünk az egyedi elemeket a megadott listából.

A Pandas modullal való munkához kövesse az alábbi lépéseket:

Step 1) Importálja a Pandas modult

import pandas as pd

Step 2) Használja a listát a duplikátumokkal unique() az alábbiak szerint:

myFinalList = pd.unique(my_list).tolist()

Step 3) Nyomtassa ki a listát az alábbiak szerint:

print(myFinalList)

A végső kód a kimenettel a következő:

import pandas as pd

my_list = [1,2,2,3,1,4,5,1,2,6]
myFinalList = pd.unique(my_list).tolist()
print(myFinalList)

output:

[1, 2, 3, 4, 5, 6]

8. módszer) Az enumerate() és a listaértés használata

Itt a listaértés és a felsorolás kombinációja az ismétlődő elemek eltávolításához. Az Enumerate egy objektumot ad vissza számlálóval a lista minden eleméhez. Például (0,1), (1,2) stb. Itt az első érték az index, a második érték a listaelem. W

A rendszer minden elemet ellenőrzi, hogy létezik-e a listában, és ha igen, akkor eltávolítja a listából.

Példa

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))

output:

[1, 2, 3, 4, 5, 6]

Összegzésként

  • A másolatok listáról való eltávolításához használhatja a beépített funkciót set(). A specialitás a set() módszer az, hogy különböző elemeket ad vissza.
  • Az ismétlődéseket importálással távolíthatja el a megadott listáról OrderedDictfrom gyűjtemények. A python2.7-től kezdve érhető el. OrderedDictdict gondoskodik arról, hogy a különböző elemeket olyan sorrendben küldje vissza, amelyben a kulcs jelen van.
  • Használhat egy for-loopot, amellyel végighaladunk az elemek listáján a duplikációk eltávolításához.
  • A módszer unique() a Numpy modulból segíthet eltávolítani a duplikációt a megadott listáról.
  • A Pandas modulnak van egy unique() módszerrel, amely megadja nekünk az egyedi elemeket a megadott listából.
  • A listaértés és a felsorolás kombinációja az ismétlődő elemek eltávolítására szolgál a listából. Az Enumerate egy objektumot ad vissza számlálóval a lista minden eleméhez.