@nekolov

Python, почему for пропускает (не находит) подстроку в некоторых элементах списка?

Почему for пропускает (не находит) подстроку в некоторых элементах списка.

Ниже упрощенный пример.
test = ['127.0.0.1/1', '127.0.0.1/2', '127.0.0.1/3', '127.0.0.1/4', '127.0.0.1/5', '127.0.0.1/6', '127.0.0.2/7', '127.0.0.2/8', '127.0.0.2/9']

def main():
    ip = "127.0.0.1"

    for t in test:
        if ip in str(t):
            print('ip found', ip, 'debug: ', t)
            test.remove(t)

else:
    print('not found', 'debug: ', t, ip)

if __name__ == "__main__":
    main()

Вывод:
ip found 127.0.0.1 debug: 127.0.0.1/1
ip found 127.0.0.1 debug: 127.0.0.1/3
ip found 127.0.0.1 debug: 127.0.0.1/5
not found debug: 127.0.0.2/7 127.0.0.1
not found debug: 127.0.0.2/8 127.0.0.1
not found debug: 127.0.0.2/9 127.0.0.1
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Потому что нельзя изменять итерируемую коллекцию.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы