【问题标题】:Passing a list of conditions to a function to be checked将条件列表传递给要检查的函数
【发布时间】:2021-04-12 22:19:45
【问题描述】:

我有一个 n 个条件的列表,例如

cond = [x > 0, x < 10, x == 2]

x 是我希望针对这些条件进行测试的任何变量。如果已经定义了x,我可以轻松地测试这些条件,但是如果我想将这组条件传递给另一个尚未定义x 的函数怎么办?在 Python 中有没有办法传递这组条件,同时保持 x 一个匿名变量?如果没有,是否有替代方案?

【问题讨论】:

  • 没有“条件对象”这样的东西。您所拥有的不是条件列表,而是列表文字,并且在实例化列表文字时会评估其中的布尔表达式。也许您可以分享您的实际用例?
  • lambda x: [x &gt; 0, x &lt; 10, x == 2] ?

标签: python list if-statement


【解决方案1】:

您可能正在寻找匿名函数或lambda

这可能是

cond = [
    lambda x: x > 0,
    lambda x: x < 10,
    lambda x: x == 2,
]
>>> [f(5) for f in cond]
[True, True, False]

或者@John Coleman suggests in a comment你可以把它们放在一起

cond = lambda x: all((x > 0, x < 10, x == 2))  # tuple of booleans
>>> cond(5)
False
>>> cond(2)
True

如果和例子一样,可以查看最后一个案例== 2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-31
    • 2017-11-18
    • 1970-01-01
    相关资源
    最近更新 更多