Что найти?

Как удалить повторяющиеся элементы в списке в Python

/
/

Мы знаем, что список в Python может содержать значения любого типа данных. Это также означает, что список может содержать повторяющиеся элементы. А в некоторых скриптах мы можем не захотеть, чтобы в нашем списке были повторяющиеся элементы.

удаление повторяющихся элементов

Синтаксис оператора membership:

x in collection
x not in collection

Где, x – это элемент, in – ключевое слово в Python, а коллекция – это любая коллекция.

x в коллекции возвращает True, если x присутствует в коллекции, в противном случае – False.

x not in collection возвращает True, если x отсутствует в коллекции, в противном случае – False.

Ниже приведен пошаговый процесс удаления повторяющихся элементов из списка в Python с помощью оператора membership:

  1. Возьмите список предметов. Мы должны создать новый список с удаленными повторяющимися элементами из этого списка.
  2. Создайте новый пустой список.
  3. Для каждого элемента в данном исходном списке проверьте, присутствует ли элемент в новом списке:
    1. Если элемента нет в новом списке, добавьте элемент в новый список.

В этом примере мы возьмем список чисел, некоторые из которых являются дубликатами. Затем мы применим описанный выше пошаговый процесс, чтобы отбросить дубликаты и включить только уникальные элементы.

list1 = [2, 3, 7, 3, 6, 2, 8, 8]
list2 = []

for item in list1:
    if item not in list2:
        list2.append(item)

print(list2)

Вывод:

[2, 3, 7, 6, 8]

В приведенном выше примере мы скопировали уникальные элементы в новый список. Но что, если мы хотим удалить повторяющиеся элементы из исходного списка.

Выполните следующие действия, чтобы удалить повторяющиеся элементы из списка на месте:

  1. Возьмите список элементов. Мы собираемся удалить дубликаты, присутствующие в этом списке.
  2. Инициализируйте индекс с помощью 1. Поскольку первый элемент будет уникальным, мы проверяем его со второй позиции, а не с первой.
  3. Запустите цикл while с условием, что индекс должен быть меньше длины данного списка:
    1. Если элемент по индексу присутствует в подсписке, части списка, которая присутствует перед этой позицией индекса, удалите элемент по индексу. В противном случае увеличьте индекс и продолжите цикл while.
  4. После завершения цикла у нас остаются уникальные элементы в списке.

Чтобы найти подсписок, присутствующий перед индексом во время каждой итерации цикла while, мы используем технику Python Slicing.

list1 = [2, 3, 7, 3, 6, 2, 8, 8]

index = 1
while index < len(list1):
    if list1[index] in list1[ : index]:
        list1.pop(index)
    else:
        index += 1

print(list1)

Вывод:

[2, 3, 7, 6, 8]

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

This div height required for enabling the sticky sidebar