Python премахва дубликати от списък

Съдържание:

Anonim

Списъкът е контейнер, който съдържа различни обекти на 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 връща обект с брояч към всеки елемент от списъка.