Как удалить повторяющиеся слова из списка в Python - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть следующий список:
Liste = ['привет', 'привет слово', 'слово', 'красное', 'красное яблоко', 'яблоко', 'король']
и я хочу удалить дубликаты слов, которые включают в себя другие слова, такие как «привет» и «слово», «красный» и «яблоко»
поэтому список результатов будет выглядеть следующим образом: ['hello word', 'red apple', 'king'] Я попробовал несколько методов, но у меня не получилось!
Так кто-нибудь может помочь с простым решением моей проблемы?

1 Ответ

0 голосов
/ 08 апреля 2019
myList = ['hello','hello word','word','red','red apple','apple','king']
newList = []

for item in myList:
  unique = True
  current = myList.pop()  

  for string in myList:
    if current in string:
      unique = False

  if unique:
    newList.append(current)  

  myList.insert(0, current)

print(newList)

Перебирая список, каждая итерация выводит последний элемент из списка.После этого переберите оставшиеся элементы и оцените, является ли выдвинутая нами строка подстрокой какой-либо из оставшихся строк.

Если нет, мы считаем выдвинутую строку уникальной и можем добавить ее в пустой список.В конце каждой итерации цикла вставьте строку, которую мы вставили в начало исходного списка.

set () сработает, если вы хотите удалить точные дубликаты, а не подстроки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...