Питхон уклања дупликате са листе

Преглед садржаја:

Anonim

Листа је контејнер који садржи различите Питхон објекте, који могу бити цели бројеви, речи, вредности итд. То је еквивалент низа у другим програмским језицима.

Дакле, овде ћемо проћи кроз различите начине на које можемо уклонити дупликате са дате листе.

У овом упутству ћете научити:

  • Уклоните дупликате са листе помоћу Сет
  • Уклоните дупликате са листе помоћу привремене листе.
  • Уклоните дупликате са листе користећи Дицт
  • Уклоните дупликате са листе помоћу фор-лооп
  • Уклоните дупликате са листе помоћу разумевања листе
  • Уклоните дупликате са листе методом Нумпи уникуе ().
  • Уклоните дупликате са листе помоћу Пандас метода
  • Уклоните дупликате помоћу енумерате () и разумевања листе

Уклоните дупликате са листе помоћу Сет

Да бисте уклонили дупликате са листе, можете да користите уграђени скуп функција (). Посебност методе сет () је у томе што враћа различите елементе.

Имамо списак: [1,1,2,3,2,2,4,5,6,2,1]. Листа има много дупликата које морамо уклонити и вратити натраг само различите елементе. Листа се даје уграђеној функцији сет (). Касније се коначна листа приказује помоћу уграђене функције лист (), као што је приказано у примеру испод.

Резултат који добијамо су различити елементи у којима су елиминисани сви дупликати.

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]

Уклоните дупликате са листе користећи Дицт

Дупликате са дате листе можемо уклонити увозом ОрдередДицт из колекција. Доступан је од питхон2.7 надаље. ОрдередДицт брине о томе да вам врати различите елементе редоследом којим је присутан кључ.

Искористимо списак и методу фромкеис () доступну у ОрдередДицт да бисмо добили јединствене елементе са листе.

Да бисте користили методу ОрдередДицт.фромкеи (), морате да увезете ОрдередДицт из колекција, као што је приказано доле:

from collections import OrderedDict

Ево примера уклањања дупликата помоћу методе ОрдередДицт.фромкеис ().

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']

Од Питхон-а 3.5+, можемо користити уобичајени дицт.фромкеис () да бисмо добили различите елементе са листе. Методе дицт.фромкеис () враћају јединствене кључеве и помажу у уклањању дуплираних вредности.

Пример који приказује рад дицт.фромкеис () на листи за давање јединствених предмета је следећи:

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']

Уклоните дупликате са листе помоћу фор-лооп

Користећи фор-лооп, прећи ћемо преко листе ставки да бисмо уклонили дупликате.

Прво иницијализујте поље да се испразни, тј. МиФиналлист = []. Унутар фор-лооп додајте проверите да ли постоје ставке на листи у низу миФиналлист. Ако ставке не постоје, додајте ставку у низ миФиналлист помоћу аппенд () метода.

Дакле, кад год се наиђе на дупликат, она ће већ бити присутна у низу миФиналлист и неће бити уметнута. Проверимо сада исто у примеру испод:

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]

Уклоните дупликате са листе помоћу разумевања листе

Разумевања пописа су Питхон функције које се користе за креирање нових секвенци (као што су листе, речници итд.) Помоћу секвенци које су већ креиране. Ово вам помаже да смањите дуже петље и олакшате читање и одржавање кода.

Искористимо разумевање листе за уклањање дупликата са дате листе.

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]

Уклоните дупликате са листе методом Нумпи уникуе ().

Метода уникуе () из Нумпи модула може нам помоћи да уклонимо дупликат са дате листе.

Да бисте радили са Нумпи фирст импорт нумпи модулом, морате следити ове кораке:

Корак 1 ) Увоз модула Нумпи

import numpy as np

Корак 2) Користите листу са дупликатима унутар јединствене методе као што је приказано доле. Излаз се претвара у формат листе методом толист ().

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]

Уклоните дупликате са листе помоћу Пандас метода

Модул Пандас има јединствену () методу која ће нам дати јединствене елементе са дате листе.

Да бисте радили са модулом Пандас, морате следити ове кораке:

Корак 1) Увоз модула Пандас

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]

Уклоните дупликате помоћу енумерате () и разумевања листе

Овде се комбинација поимања и набрајања листе уклањају дуплицирани елементи. Енумерате враћа објект са бројачем сваком елементу на листи. На пример (0,1), (1,2) итд. Овде је прва вредност индекс, а друга вредност ставка листе. В

Сваки елемент се проверава да ли постоји на листи, а ако постоји, уклања се са листе.

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]

Резиме

  • Да бисте уклонили дупликате са листе, можете да користите уграђени скуп функција (). Посебност методе сет () је у томе што враћа различите елементе.
  • Можете да уклоните дупликате са дате листе тако што ћете увозити ОрдередДицтфром колекције. Доступан је од питхон2.7 надаље. ОрндедДицтдицт брине о томе да вам врати различите елементе редоследом којим је кључ присутан.
  • Можете да користите фор-петљу којом ћемо прећи списак ставки да бисмо уклонили дупликате.
  • Метода уникуе () из Нумпи модула може нам помоћи да уклонимо дупликат са дате листе.
  • Модул Пандас има јединствену () методу која ће нам дати јединствене елементе са дате листе.
  • Комбинација разумевања и набрајања листе користи се за уклањање дуплираних елемената са листе. Енумерате враћа објект са бројачем сваком елементу на листи.