Можно ли сделать так, чтобы мой оператор else появился после того, как код завершил проверку каждой опции?

У меня есть цикл while, который просматривает двумерный список, чтобы посмотреть, сможет ли он найти аналогичное представление для удаления.

    i=0

while i <= len(my_list):
    if my_list[i] == userinput:
        del my_list[i]
        print("Entry Removed!")
    else:
        print("This publication does not exist")
    i+=1

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

Я понимаю, почему это происходит, но я не знаю, как это исправить. Как лучше всего решить эту проблему?

РЕДАКТИРОВАТЬ: имя списка изменено с «list» на «my_list». Плохо, я не назвал это так, что в коде я просто изменил имя при загрузке вопроса для простоты понимания.

4 голоса | спросил Sanfer 12 J000000Thursday18 2018, 23:25:06

2 ответа


0
Вам понадобится логическое значение:Некоторые несвязанные предложения:Лучше не использовать имя ---- +: = 1 =: + ---- для переменнойНе удаляйте элементы из списка, повторяя этот же список.Вы можете перебрать список в обратном порядке:
ответил DeepSpace 12 J000000Thursday18 2018, 23:29:13
0
В цикле while Python есть предложение else, которое выполняется, если цикл завершается, не прерывая его:Но давайте пойдем другим путем, чтобы избежать изменения списка, над которым мы зацикливаемся:Не перезаписывайте ключевое слово ---- +: = 1 =: + ---- .Я изменил его на ---- +: = 2 =: + ----, но вы можете изменить его на что-то более значимое для вашего приложения.
ответил Zev 12 J000000Thursday18 2018, 23:36:20

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132