如何执行逻辑操作或对列表[多个元素]?

2024-03-29 11:28:26 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有方法可以比较列表元素并返回结果值? 下面是python代码片段,它在其中接收两个值并返回值。在

def logical_or_decision(a,b):
    return a or b

value = logical_or_decision(1,0)
print value

我需要使其通用并可扩展到2个以上元素。如何我能做超过2个元素吗?在


Tags: or方法代码元素列表returnvaluedef
3条回答

最佳解决方案^^^以上^ ^:

any([True, False, True])
# returns True

any很好,因为“短路”(比如“布尔快速求值”直到结束都不会迭代)。在

如果您想要相同的东西,但需要手动和急切-请参见reduce

^{pr2}$

有一个内置函数可以做到这一点:any。在

>>> any([0,0,1,0])
True

>>> any([0,0,0])
False

您可以使用reduce来执行此操作:

def logical_or_decision(*args):
    return reduce(
        lambda a, b: a or b,
        args,
        False
    )

print logical_or_decision(1, 1, 1, 0) # False

当然,您可以使用anyall(用于逻辑AND),但是{}可以为您提供构建此类操作的一般方法(不是针对OR或{})。在

相关问题 更多 >