Python видаляє дублікати зі списку

Зміст

Список - це контейнер, що містить різні об’єкти Python, які можуть бути цілими числами, словами, значеннями тощо. Це еквівалент масиву в інших мовах програмування.

Тож тут ми пройдемо різні способи, за допомогою яких ми можемо вилучити дублікати із заданого списку.

У цьому підручнику ви дізнаєтесь:

  • Видаліть дублікати зі списку за допомогою Set
  • Видаліть копії зі списку за допомогою Тимчасового списку.
  • Видаліть дублікати зі списку за допомогою Dict
  • Видаліть дублікати зі списку за допомогою циклу for
  • Видаліть дублікати зі списку, використовуючи розуміння списку
  • Видаліть дублікати зі списку, використовуючи метод Numpy unique ().
  • Видаліть дублікати зі списку методами Pandas
  • Видаліть дублікати, використовуючи перелічення () та розуміння списку

Видаліть дублікати зі списку за допомогою 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

Використовуючи for-loop, ми переглянемо список елементів, щоб видалити дублікати.

Спочатку ініціалізуйте масив порожнім, тобто myFinallist = []. Усередині циклу for додайте перевірку, чи існують елементи у списку в масиві myFinallist. Якщо елементи не існують, додайте елемент до масиву myFinallist, використовуючи додаток () метод.

Отже, щоразу, коли зустрічається повторюваний елемент, він уже буде присутній у масиві 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 повертає об’єкт із лічильником до кожного елемента у списку. Наприклад (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 і далі. OrderedDictdict піклується про повернення вам різних елементів у тому порядку, в якому присутній ключ.
  • Ви можете скористатися циклом for, для якого ми переглянемо список елементів, щоб видалити дублікати.
  • Метод unique () із модуля Numpy може допомогти нам вилучити дублікат із поданого списку.
  • Модуль Pandas має унікальний () метод, який надасть нам унікальні елементи із наведеного списку.
  • Поєднання розуміння списку та перерахування використовується для видалення дублікатів елементів зі списку. Enumerate повертає об’єкт із лічильником до кожного елемента у списку.

Цікаві статті...