для l oop продолжает все сначала - PullRequest
4 голосов
/ 19 февраля 2020

Поэтому я пытаюсь создать код, который получает каждое слово в списке и добавляет одно и то же слово с первой буквой в нижнем или верхнем регистре (в зависимости от слова)

вот код

lost = ["de", "da", "do"] #The actual list is much bigger and with numbers but this list is small and has the same problem

for x in lost:
    if x[:1] == x[:1].lower():
        try:
            print x
            int(x[:1])
        except ValueError:
            print x
            lost.append(x[:1].upper() + x[1:])
    elif x[:1] == x[:1].upper():
        try:
            int(x[:1])
        except ValueError:
            lost.append(x[:1].lower() + x[1:])

но после того, как он сделал все 3 слова, для l oop начинается снова, поэтому консоль выглядит следующим образом:

de
de
da
da
do
do
de
de
da
da
do
do
....

почему она не останавливается после того, как она выполнила эти 3 слова

1 Ответ

10 голосов
/ 19 февраля 2020

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

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