我正在尝试遍历函数返回的整数列表。
问题:我想检查列表中的任何元素是否大于特定值(95),然后执行一次一次语句,而不是每次迭代,即遍历列表,检测即使大于95的数字,也要执行该语句。
我已经尝试过,但是该语句在条件满足的情况下会继续执行
这是我正在尝试的代码
for path in Path(spath).iterdir():
for n in cosine_sim(file, path):
x = all(n)
if x > 95:
print("suceess...")
success...
打印多次
答案 0 :(得分:7)
Python具有内置功能,可以大致满足您的要求:
any(iterable)
中至少有一个元素为真,则iterable
返回true all(iterable)
中的每个元素都是真实的,iterable
返回true 牢记这一点,通常的习惯用法是检查列表中每个元素的条件,然后在其上使用all()
或any()
:
for n in cosine_sim(file, path):
if all(x > 95 for x in n):
print("success...")
这可能比您想要的要慢一些,因为它实际上必须为每个x > 95
计算x
。例如,如果您要确保列表nums
中的每个数字都不等于零,或者确保strs
中没有字符串为空,则可以使用all(nums)
或all(strs)
-由于数字0和空字符串都为false,因此您不必先将它们转换为布尔值。
答案 1 :(得分:0)
您也可以使用此:
your_list=[123,232,121,100,98]
if any(i > 95 for i in your_list):
print("success...")
答案 2 :(得分:0)
扩展绿色披风家伙的答案,并添加break
for path in Path(spath).iterdir():
for n in cosine_sim(file, path):
if all(int(x) < 95 for x in n):
print("suceess...")
break
break
两个break
,因为有两个循环...