【问题标题】:How to define a condition on boolean operation based on returned result of previous file如何根据前一个文件的返回结果定义布尔运算条件
【发布时间】:2018-01-08 17:42:12
【问题描述】:

抱歉,如果这个问题已经被问过,但我没有找到满意的答案。

我有一系列文件希望使用布尔运算进行测试。如果文件满足条件,则代码返回“True”;如果不是,则返回“False”。我的代码遍历指定目录中的每个文件,然后返回所有满足条件的文件的总和。

下面的一些解释性代码:

for roots, dirs, filenames in os.walk(in_dir):
    for f in filenames:
        sum_values = (np.max(array) - np.mean(array))
        boolean = np.greater_equal(sum_values, 100)
        print boolean

我的问题是,我想提供一个附加条件,这样在测试文件时,如果前一个文件返回值“True”,那么文件会自动返回“False”。如果前一个文件返回“False”,则具有布尔结果的条件正常工作。例如:

file        boolean    boolean_with_condition
001         True       True
002         True       False
003         False      False
004         True       True
005         False      False
006         False      False

我希望这是有道理的。我希望行nboolean_with_condition 值依赖于行nn-1boolean 值。非常感谢您的帮助。

【问题讨论】:

  • 将上一个结果存储在一个变量中,如果为真,当前结果为假,否则正常逻辑则上一个结果=当前结果

标签: python boolean conditional-statements


【解决方案1】:
for roots, dirs, filenames in os.walk(in_dir):
    previous = False
    for f in filenames:
        sum_values = (np.max(array) - np.mean(array))
        boolean = np.greater_equal(sum_values, 100) and (not previous)
        print boolean 
        previous = boolean

【讨论】:

  • 嗨,这是一个递归参数吗?您已经通过两个术语定义了 boolean,一个 numpy greater_equal 参数和 not previous - 但后来 previous 被定义为 boolean。这不会导致循环论证吗?
  • @ailsa_naismith 我用boolean = np.greater_equal(sum_values, 100) and (not previous) 做的事情相当于if previous: boolean = False; else: boolean = np.greater_equal(sum_values, 100)
猜你喜欢
  • 2017-07-21
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
  • 2019-06-10
  • 2021-08-23
  • 1970-01-01
  • 2017-04-22
  • 1970-01-01
相关资源
最近更新 更多