Python удаляет дубликаты из списка

Содержание:

Anonim

Список - это контейнер, содержащий различные объекты Python, которые могут быть целыми числами, словами, значениями и т. Д. Это эквивалент массива в других языках программирования.

Итак, здесь мы рассмотрим различные способы удаления дубликатов из данного списка.

В этом руководстве вы узнаете:

  • Удалите дубликаты из списка с помощью Set
  • Удалите дубликаты из списка с помощью временного списка.
  • Удалите дубликаты из списка с помощью Dict
  • Удалите дубликаты из списка с помощью цикла for
  • Удалите дубликаты из списка, используя понимание списка
  • Удалите дубликаты из списка с помощью метода Numpy unique ().
  • Удалите дубликаты из списка с помощью методов Pandas
  • Удалите дубликаты с помощью enumerate () и понимания списка

Удалите дубликаты из списка с помощью Set

Чтобы удалить дубликаты из списка, вы можете использовать встроенную функцию 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, мы пройдемся по списку элементов, чтобы удалить дубликаты.

Сначала инициализируйте массив пустым, т.е. myFinallist = []. Внутри цикла for добавьте проверку, существуют ли элементы в списке в массиве myFinallist. Если элементы не существуют, добавьте элемент в массив myFinallist с помощью append () метод.

Таким образом, всякий раз, когда встречается повторяющийся элемент, он уже будет присутствовать в массиве 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 имеет метод unique (), который предоставит нам уникальные элементы из данного списка.

Для работы с модулем Pandas вам необходимо выполнить следующие действия:

Шаг 1) Импортируйте модуль Pandas

import pandas as pd

Шаг 2) Используйте свой список с дубликатами внутри метода unique (), как показано ниже:

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