Как проверить наличие одинаковых строк в списке в Python - PullRequest
0 голосов
/ 08 ноября 2019

Как я могу проверить, содержит ли список идентичные строки в python? Я пытался найти что-то подобное в предыдущих вопросах обмена стека, и я не могу найти пример того, что я ищу. В настоящее время я пишу простую программу генерации стихов, основанную на условном распределении частот. Иногда программа возвращает строку с несколькими словами в повторении. Например:

«зима наступила», «сегодня выпал дождь» и «встретить кукушку, когда я буду»

Если что-то подобное произойдет, я хочу сообщить своему компьютерувосстановить линию, пока не будет создана новая линия, которая не имеет этой проблемы. Я нашел способы избавиться от одного и того же слова, появляющегося два раза подряд (например, «the»), и проблем, когда целые строки повторяются (например, «вот оно»), но по некоторым причинам строки с некоторым повторениемвсе еще обходятся.

Вот мой код, который проверяет, должна ли линия быть восстановлена ​​или нет.

                       for item in lineN:
                        if lineN.count(item) > 1: 
                            #Regens line if 2 words repeat infinitely. Ex: "it is it is it"
                            break
                        elif any(lineN[i]==lineN[i+1] for i in range(len(lineN)-1)): 
                            #Regens line if same word appears twice in a row. Ex: "the the"
                            break
                        else: 
                            #Poem is correct and will be returned from function
                            return lineN, strN
                            break

Как я могу искать, если в списке есть идентичные строки?

1 Ответ

0 голосов
/ 08 ноября 2019

Исходя из комментария, вот ваш код.

for item in lineN: 
    if len(lineN) != len(set(lineN)):
        break
    elif lineN.count(item) > 1: #Regens line if 2 words repeat infinitely. Ex: "it is it is it" 
        break 
    elif any(lineN[i]==lineN[i+1]:
        for i in range(len(lineN)-1)): #Regens line if same word appears twice in a row. Ex: "the the" 
             break 
    else: #Poem is correct and will be returned from function 
         return lineN, strN break

Исходя из вашего поста, должны соблюдаться первые условия.

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