Hogyan távolítsuk el az ismétlődéseket a listából Python
⚡ Okos összefoglaló
Másodpéldányok eltávolítása egy Python A lista számos beépített megközelítéssel elvégezhető, beleértve a set() és dict.fromkeys() metódusokat, ciklusokat, listaértelmezéseket, valamint a NumPy és Pandas könyvtári metódusait, amelyek mindegyike a sorrend megőrzését a sebességgel egyensúlyozza.
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 áttekintjük a különböző módszereket, amelyekkel eltávolíthatjuk a duplikátumokat egy adott listából. Python.
1. módszer) Távolítsa el az ismétlődéseket a listáról a Set segítségével
A listából a duplikált elemek eltávolításához használhatod a beépített set() függvényt. A set() metódus specialitása, hogy különböző elemeket ad vissza.
Van egy listánk: [1,1,2,3,2,2,4,5,6,2,1]. A lista sok ismétlődő elemet tartalmaz, amelyeket el kell távolítanunk, és csak a különböző elemeket kell visszaadnunk. A listát átadjuk a beépített set() függvénynek. Later A végső lista a beépített list() függvénnyel jelenik meg.
A kapott kimenet különálló elemek, amelyekből az összes ismétlődő elem ki lett távolítva.
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
Egy adott listából duplikátumok eltávolításához használhat egy üres ideiglenes listát. Ehhez először végig kell menni a duplikátumokat tartalmazó listán, és hozzá kell adni 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 egy ideiglenes lista használatával.
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ából az OrderedDict gyűjteményekből történő importálásával távolíthatjuk el a duplikátumokat. Ez a python 2.7-es verziójától érhető el. Az OrderedDict gondoskodik arról, hogy a különböző elemeket a kulcs jelenlétének sorrendjében adja vissza.
Használjunk egy listát, és az OrderedDict-ben elérhető fromkeys() metódust a lista egyedi elemeinek kinyerésére.
Az OrderedDict.fromkeys() metódus használatához importálnia kell az OrderedDict-et gyűjteményekből, az alábbiak szerint:
from collections import OrderedDict
Íme egy példa a duplikátumok eltávolítására az OrderedDict.fromkeys() metódus használatával.
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 Python A 3.5-ös verziótól kezdve a szokásos dict.fromkeys() metódust használhatjuk a lista különböző elemeinek kinyerésére. A dict.fromkeys() metódus egyedi kulcsokat ad vissza, és segít megszabadulni az ismétlődő értékektől.
Egy példa, amely bemutatja a dict.fromkeys() működését egy listán az egyedi elemek megadása érdekében, 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áld a tömböt üresre, azaz myFinallist = []. A for cikluson belül adj hozzá egy ellenőrzést, hogy a lista elemei léteznek-e a myFinallist tömbben. Ha az elemek nem léteznek, akkor add hozzá az elemet a myFinallist tömbhöz az append() metódussal.
Tehát amikor a duplikált elemmel találkozunk, az már szerepelni fog a myFinallist tömbben, és nem kerül beillesztésre. Most ellenőrizzük 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) A NumPy unique() metódus használata
A NumPy modul unique() metódusa segíthet eltávolítani a duplikátumokat a megadott listából.
A NumPy használatához először importáld a numpy modult:
Step 1) NumPy modul importálása
import numpy as np
Step 2) Használd a listádat a duplikátumokkal a unique() metóduson belül. A kimenetet a tolist() metódus alakítja vissza listává.
myFinalList = np.unique(my_list).tolist()
Step 3) Végül nyomtasd ki a listát:
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 egyedi() metódusa, amely megadja az egyedi elemeket a megadott listából.
A Pandas modullal való munka:
Step 1) Importálja a Pandas modult
import pandas as pd
Step 2) Használd a listádat a duplikátumokkal a unique() metóduson belül:
myFinalList = pd.unique(my_list).tolist()
Step 3) Nyomtasd ki a listát:
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 listaelemzés és az enumerate() kombinációját használjuk az ismétlődő elemek eltávolítására. Az Enumerate egy objektumot ad vissza, amely minden listaelemhez számlálót tartalmaz. Például (0,1), (1,2) stb. Itt az első érték az index, a második érték pedig a listaelem.
Minden elemet ellenőriznek, hogy létezik-e a listában, és ha igen, akkor eltávolítják 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]

