Списъкът е контейнер, който съдържа различни обекти на Python, които могат да бъдат цели числа, думи, стойности и др. Той е еквивалент на масив в други езици за програмиране.
Така че тук ще преминем през различни начини, по които можем да премахнем дубликати от даден списък.
В този урок ще научите:
- Премахнете дубликати от списъка с помощта на Set
- Премахване на дубликати от списък с помощта на временния списък.
- Премахнете дубликати от списъка с помощта на Dict
- Премахнете дубликати от списък с помощта на for-loop
- Премахнете дубликати от списъка, като използвате разбирането на списъка
- Премахнете дубликатите от списъка, използвайки метода 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_listprint("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 се грижи да ви върне отделните елементи в ред, в който присъства ключът.
Нека използваме списък и използваме метода fromkeys (), наличен в OrderedDict, за да получим уникалните елементи от списъка.
За да използвате метода OrderedDict.fromkey (), трябва да импортирате OrderedDict от колекции, както е показано по-долу:
from collections import OrderedDict
Ето пример за премахване на дубликати с помощта на метода OrderedDict.fromkeys ().
from collections import OrderedDictmy_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-loop
Използвайки for-loop, ще прегледаме списъка с елементи, за да премахнем дубликати.
Първо инициализирайте масива, за да изпразните, т.е. метод.
Така че, когато се срещне дублиращият се елемент, той вече ще присъства в масива 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 ().
Методът unique () от модула Numpy може да ни помогне да премахнем дубликата от дадения списък.
За да работите с модула Numpy first import numpy, трябва да изпълните следните стъпки:
Стъпка 1 ) Импортиране на модул Numpy
import numpy as np
Стъпка 2) Използвайте списъка си с дубликати в уникалния метод, както е показано по-долу. Изходът се преобразува обратно във формат на списък, използвайки метода tolist ().
myFinalList = np.unique(my_list).tolist()
Стъпка 3) Накрая отпечатайте списъка, както е показано по-долу:
print(myFinalList)
Крайният код с изход е както следва:
import numpy as npmy_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 има уникален () метод, който ще ни даде уникалните елементи от дадения списък.
За да работите с модул Pandas, трябва да изпълните следните стъпки:
Стъпка 1) Импортиране на модул Pandas
import pandas as pd
Стъпка 2) Използвайте списъка си с дубликати в уникалния () метод, както е показано по-долу:
myFinalList = pd.unique(my_list).tolist()
Стъпка 3) Отпечатайте списъка, както е показано по-долу:
print(myFinalList)
Крайният код с изход е както следва:
import pandas as pdmy_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) и т.н. Тук първата стойност е индексът, а втората стойност е елементът от списъка. 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 () е, че той връща различни елементи.
- Можете да премахнете дубликати от дадения списък чрез импортиране на OrderedDictfrom колекции. Предлага се от python2.7 нататък. OrndedDictdict се грижи да ви върне отделните елементи в ред, в който присъства ключът.
- Можете да се възползвате от цикъл for, който ще прегледаме списъка с елементи, за да премахнем дубликати.
- Методът unique () от модула Numpy може да ни помогне да премахнем дубликата от дадения списък.
- Модулът Pandas има уникален () метод, който ще ни даде уникалните елементи от дадения списък.
- Комбинацията от разбиране на списъка и изброяване се използва за премахване на дублиращите се елементи от списъка. Enumerate връща обект с брояч към всеки елемент от списъка.