检查列表中的所有元素是否满足条件

时间:2019-07-12 13:09:19

标签: python python-3.x

我正在尝试遍历函数返回的整数列表。

问题:我想检查列表中的任何元素是否大于特定值(95),然后执行一次一次语句,而不是每次迭代,即遍历列表,检测即使大于95的数字,也要执行该语句。

我已经尝试过,但是该语句在条件满足的情况下会继续执行

这是我正在尝试的代码

for path in Path(spath).iterdir():
    for n in cosine_sim(file, path):
        x = all(n)
        if x > 95:
            print("suceess...")

success...打印多次

3 个答案:

答案 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,因为有两个循环...