我正在尝试检查列表中的所有元素,以查看它们是否满足“小于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.")
这会产生输出:
2
1
There are no elements in this list less than 5.
如何摆脱输出的最后一行?
答案 0 :(得分:7)
如果遇到else
,则只会跳过for-loop
的{{1}}。因此,break
语句不适合来查找列表中的多个元素。
相反,请使用列表推导并根据结果进行相应的打印。
for-else
答案 1 :(得分:1)
您可以执行以下操作:
if max(mylist) < 5:
print('there are no elements in this list greater than 5')
else:
for x in mylist:
if int(x) < 5:
print(x)
这会检查您的列表是否包含任何大于5的内容,如果有,则会运行您的循环。
答案 2 :(得分:1)
在循环外部保留一个布尔标志。如果找到至少一个元素,则将其设置为true。如果标志没有改变 - 打印出关于没有找到大于5的元素的声明:
list = [100, 2, 1, 3000]
found = False
for x in list:
if int(x) < 5:
print(x)
found = True
if found == False:
print("There are no elements in this list greater than 5")
答案 3 :(得分:-1)
您需要的是某种标志,以便跟踪是否满足条件,如下面的代码所示。
list = [100, 2, 1, 3000]
flag = False
for x in list:
if int(x) < 5:
print(x)
flag = True
if not flag:
print("There are no elements in this list greater than 5.")