我有一个遍历二维列表的 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”。糟糕,我实际上并没有在代码中这样调用它,我只是在上传问题时更改了名称以便于理解。
最佳答案
你需要一个 bool 值:
i = 0
found = False
while i <= len(list):
if list[i] == userinput:
del list[i]
print("Entry Removed!")
found = True
i += 1
if not found:
print("This publication does not exist")
一些不相关的建议:
- 最好不要对变量使用名称
list
在迭代同一个列表时不要从列表中删除项目。您可以反向迭代列表:
i = len(li) - 1 found = False while i >= 0: if li[i] == userinput: del li[i] print("Entry Removed!") found = True i -= 1 if not found: print("This publication does not exist")
关于python - 是否可以在代码检查完每个选项后让我的 else 语句出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51313895/