Слово не появляется в списке - PullRequest
0 голосов
/ 19 октября 2019

У меня есть задание, в котором у меня есть список (немецкая песня), и мой ввод - это одно слово в первой половине песни. Задача состоит в том, чтобы вынуть слово из первой половины песни и посмотреть, появится ли оно во второй половине снова, но мы должны сделать это особым образом. Мы берем длину слова и прыгаем столько раз в word2, а затем берем длину слова 2 и прыгаем столько раз в word3 ... Если я снова получаю исходное слово (мой ввод), я останавливаюсь.

Первая проблема с моим кодом состоит в том, что он всегда идет в конец списка, он не останавливается, когда достигает исходного слова (ввод). Вторая проблема заключается в том, что он не добавляет слово 2 раза в список, он добавляет его только один раз. Цикл должен прерваться после того, как он достигнет входа или конца списка песен.

Вот код, в котором проблема (я думаю): if song[index] not in found_list:.

Вот всекод:

song = ["Es", "gingen", "zwei", "Parallelen",
"ins", "Endlose", "hinaus",
"zwei", "kerzengerade", "Seelen",
"und", "aus", "solidem", "Haus",

"Sie", "wollten", "sich", "nicht", "schneiden",
"bis", "an", "ihr", "seliges", "Grab",
"Das", "war", "nun", "einmal", "der", "beiden",
"geheimer", "Stolz", "und", "Stab",

"Doch", "als", "sie", "zehn", "Lichtjahre",
"gewandert", "neben", "sich", "hin", #End of the first half of the song, index: 42
"da", "wards", "dem", "einsamen", "Paare",
"nicht", "irdisch", "mehr", "zu", "Sinn",

"Warn", "sie", "noch", "Parallelen",
"Sie", "wußtens", "selber", "nicht", 
"sie", "flossen", "nur", "wie", "zwei", "Seelen",
"zusammen", "durch", "ewiges", "Licht",

"Das", "ewige", "Licht", "durchdrang", "sie",
"da", "wurden", "sie", "eins", "in", "ihm",
"die", "Ewigkeit", "verschlang", "sie",
"als", "wie", "zwei", "Seraphim"]


originalWord = input("Enter a word: ")
found_list = [] # The list for found words
index = song.index(originalWord) # Get the index of the first instance of "word"
wordCount = song.count(originalWord)


while True:
    if wordCount <= 1:
        print("Word appears only 1 time and therefore can't appear one more time")
        break  
    try:
        if song[index] not in found_list:
            found_list.append(song[index])
            found_list.append(len(song[index]))
        index += len(song[index]) 
    except: 
        break

print(found_list)

1 Ответ

0 голосов
/ 20 октября 2019

Я решил это. Мне просто нужно было сохранить входные данные в одной переменной, а затем сравнить, если сохраненное слово находится в списке ...

while True:
if wordCount <= 1:
    print("Word appears only 1 time and therefore can't appear one more time")
    break  
try:
    found_list.append(song[index])
    found_list.append(len(song[index]))
    index += len(song[index]) 
    if song[index] == originalWordSaved:
        found_list.append(song[index])
        found_list.append(len(song[index]))
        print("Theorie works")
        break
except:
    print("Theorie doesn't work") 
    break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...