Hadeel Saadany Ответов: 1

Удаление дубликатов в списках


 I  am working on Python 3.7.4. I have the following list of strings:

myList = ['a person who has such a video needs to immediately give it to the investigators', 'who has such a video needs']

I want to delete duplicates in the first string, so myList would end up as:

myList = ['a person to immediately give it to the investigators','who has such a video needs']
 I tried this code but it gives me only the first clause.
can someone help please? thanks


Что я уже пробовал:

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)

Maciej Los

Я не вижу дубликатов!
Чего вы хотите добиться, так это удалить подстроку из элемента, если другой элемент содержит полное предложение.
Другими словами, вы хотите удалить 'who has such a video needs' от 'a person who has such a video needs to immediately give it to the investigators'

Hadeel Saadany

Да, это так. В списке есть две строки: str [0] и str [1], я хочу сохранить эти две строки, но удалить слова в str [0], которые находятся в str[1]. Таким образом, список будет ["человек, который немедленно передаст его следователям", "у кого есть такая видеозапись".]
Спасибо

[no name]

Можете ли вы быть более конкретным с вашим требованием!!!!

Hadeel Saadany

Я пытаюсь отделить зависимое предложение от основного, мой первоначальный список состоит из двух строк: "человек, у которого есть такое видео, должен немедленно отдать его следователям" и "у кого есть такое видео, нуждается". Я хочу удалить слова в первой строке, которые повторяются во второй

1 Ответов

Рейтинг:
9

Maciej Los

Взгляните сюда:
Как проверить, содержит ли строка Python другую строку[^]
Python String | replace() - GeeksforGeeks[^]

#comparing and replacing strings in a list of strings
myList = ['a person who has such a video needs to immediately give it to the investigators', 'who has such a video needs', 'lazy dog is sleeping on the floor', 'is sleeping on the floor']
k = len(myList)-1
for i in range(0, k):
    item1 = myList[i]
    item2 = myList[i+1]
    answer = item2 in item1
    print(f"'Does '{item1}' contain '{item2}'? => {answer}")
    if(answer):
        result = item1.replace(item2, "")
        myList[i] = result
print()
print("list after changes:")
for item in myList:
    print(f"{item}")


Richard MacCutchan

Хороший ответ, +5.

Maciej Los

- Спасибо, Ричард.

Hadeel Saadany

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

Спасибо

Maciej Los

Всегда пожалуйста.

0x01AA

+5

Maciej Los

Спасибо, Бруно.