如果if语句至少满足一次,如何不执行for循环的else语句?

Jor*_*lor 1 python python-3.x for-else

我试图检查列表中的所有元素,看看它们是否符合"小于5"的条件.我想要做的是如果我的列表中没有数字小于5,我想打印一条声明"此列表中没有小于5的元素",否则只打印那些数字,而不是"此列表中没有小于5的元素." 也.

list = [100, 2, 1, 3000]
for x in list:
    if int(x) < 5:
        print(x)
else:
    print("There are no elements in this list less than 5.")
Run Code Online (Sandbox Code Playgroud)

这会产生输出:

2
1
There are no elements in this list less than 5.
Run Code Online (Sandbox Code Playgroud)

如何摆脱输出的最后一行?

Oli*_*çon 7

elsefor-loop,如果将只跳过break遇到.因此,for-else语句不适合在列表中查找多个元素.

相反,使用列表推导并根据结果进行相应打印.

lst = [100, 2, 1, 3000]

less_than_five = [x for x in lst if x <  5]

if less_than_five:
    print(*less_than_five)
else:
    print('There are no elements in this list greater than 5.')
Run Code Online (Sandbox Code Playgroud)