Структура данных списка довольно популярна среди программистов и пользователей Python. Иногда пользователи сталкиваются с повторяющимися значениями в списке и не могут их удалить. Если да, то это руководство предназначено для вас. В этом руководстве мы обсудим несколько методов удаления повторяющихся значений из структуры данных списка. Давайте посмотрим по-новому.
Метод 1: Naïve
Начните с открытия оболочки терминала с помощью «Ctrl + Alt + T». Создайте новый файл Python с инструкцией «touch». Файл «dup.py» будет открыт с помощью команды редактора «GNU Nano»:
$ touch dup.py
$ Nano dup.py
После открытия файла в редакторе Nano добавьте поддержку Python в его начало. Список целочисленных типов инициализирован, и некоторые его значения повторяются. Оператор печати отображает список путем преобразования его значения в строковый тип. Еще один пустой список, «Arr», был инициализирован. Цикл «for» будет использоваться для того, чтобы просто поместить первое вхождение значения списка и добавить его в новый список «Arr» с помощью функции «append». Вновь составленный список будет распечатан:
#! /usr/bin/python3
List = [1, 4, 6, 7, 10, 2, 1, 4, 3]
Arr = []
For i in List
If I not in Arr :
Arr.append()
Print(“ The list after update: “ + str(Arr))
После запуска файла Python на терминале отобразился исходный список и новый список без дубликатов:
$ python3 dup.py
Метод 2: понимание списка
Метод понимания списка очень похож на наивный метод. Единственное изменение — это позиция использования в нем метода добавления, цикла «for» и оператора «if». Откройте тот же файл «dup.py», чтобы обновить его код. Метод понимания списка показан как сочетание цикла for и оператора if с функцией append (). В остальном код такой же:
#! /usr/bin/python3
List = [1, 4, 6, 7, 10, 2, 1, 4, 3]
Print(“ The list before update: “ + str(List))
Arr = []
[Arr.append() for i in List if i not in Arr ]:
Print(“ The list after update: “ + str(Arr))
После выполнения файла Python мы получили ожидаемый результат, то есть исходный список и обновили новый список:
$ python3 dup.py
Метод 3: перечисление с пониманием списка
Вы можете использовать функцию перечисления в понимании списка, чтобы избежать дублирования в списке. Просто откройте файл «dup.py» и добавьте метод перечисления в строку понимания списка между циклами «for». И старый список, и обновленный список без дубликатов будут отображаться в оболочке с использованием оператора print в коде:
#! /usr/bin/python3
List = [“L”, “I”, “n”, “u”, “x”, “L”, “n”]
Print(“ The list before update: “ + str(List))
Arr = [I for n, I in enumerate(List) if I not in List[:n]]
Print(“ The list after update: “ + str(Arr))
Файл был выполнен, и в результате сначала был отображен исходный список, а затем обновленный новый список, не имеющий повторяющихся значений. Функция enumerate также упорядочила список:
$ python3 dup.py
Пример 4: Функция Set ()
Известно, что функция set () удаляет дубликаты из списка. Он удаляет дубликаты, но самостоятельно меняет порядок списка. Итак, открываем файл dup.py и добавляем инициализацию списка. Исходный список распечатан. Затем мы использовали метод «set ()» в «List», чтобы удалить дубликаты и снова преобразовать оставшиеся в список. Результирующий список обновлен и снова отображается в оболочке:
#! /usr/bin/python3
List = [“L”, “I”, “n”, “u”, “x”, “L”, “n”]
Print(“ The list before update: “ + str(List))
List = list(set(List))
Print(“ The list after update: “ + str(List))
После запуска файла Python отображается исходный список, а затем обновленный.
$ python3 dup.py
Метод 5: Collections.OrderedDict
Для этой цели также можно использовать коллекции модулей. Просто импортируйте пакет OrderedDict из библиотеки «collections». Инициализируйте список и распечатайте его. Новая переменная «Arr» используется для получения списка, созданного методом «Ordered.Dict.fromkeys ()», и обхода исходного списка в нем. Будет отображена вновь созданная переменная списка:
#! /usr/bin/python3
From collections import OrderedDict
List = [“L”, “I”, “n”, “u”, “x”, “L”, “n”]
Print(“ The list before update: “ + str(List))
Arr = list(OrderedDict.fromkeys(List))
Print(“ The list after update: “ + str(Arr))
Выполнение показывает ожидаемый результат. Первый список является исходным, а второй — обновленным списком без дубликатов:
$ python3 dup.py
Заключение
В этой статье представлены несколько методов удаления дубликатов из списка, например, понимание списка, функции set (), перечисление, импорт пакета collections.OrderedDict. Мы надеемся, что это руководство поможет вам в лучшем виде, и, пожалуйста, ознакомьтесь с Linux Hint для получения более информативных статей.