Как удалить повторяющиеся строки в python?

Пользователь

от sherwood_littel , в категории: Python , 2 года назад

Как удалить повторяющиеся строки в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 2 года назад

@sherwood_littel  Вы можете использовать инициализацию нового "фильтрованного" массива, с проверкой его значений.


1
2
3
4
5
6
7
8
9
lines = ["dropcode.ru", "dropcode.ru", "books.ru", "books.ru"];
filtredLines = []

for line in lines:
    if not (line in filtredLines): filtredLines.append(line)

print(filtredLines)

# Вывод : ['dropcode.ru', 'books.ru'] 

Пользователь

от shirley.vonrueden , год назад

@sherwood_littel 

Вы можете удалить повторяющиеся строки в Python, используя несколько различных подходов. Один из самых простых подходов - это использовать множество (set) для удаления повторов, а затем преобразовать результат обратно в список.


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

1
2
3
my_list = ['foo', 'bar', 'foo', 'baz', 'bar']
unique_list = list(set(my_list))
print(unique_list)


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


Если порядок элементов в исходном списке важен, вы можете использовать другой подход, который сохраняет порядок элементов. В этом случае вы можете использовать модуль collections и его класс OrderedDict.

1
2
3
4
5
from collections import OrderedDict

my_list = ['foo', 'bar', 'foo', 'baz', 'bar']
unique_list = list(OrderedDict.fromkeys(my_list))
print(unique_list)


Этот код создает OrderedDict из my_list, который автоматически удаляет повторы, затем создает список из уникальных значений, сохраняя при этом порядок элементов, и выводит его на экран.