【问题标题】:How to get and/or of Booleans in python [duplicate]如何在python中获取和/或布尔值[重复]
【发布时间】:2023-03-11 03:20:01
【问题描述】:

如何在 python 中获取或/和布尔值。例如,我有一个布尔值列表

lst = [True, True, False, False, True]

我想根据这个 lst 中的条件定义另一个布尔变量。如果 lst 中的任何一项为 True,则返回 True 的最佳方法是什么。另外,我如何在 lst 内所有项目都为 True 的条件下返回 True

【问题讨论】:

  • 看看any()all() 函数。这些是内置的并且始终可用。

标签: python


【解决方案1】:

any()all() 函数是可行的方法:

lst = [True, True, False, False, True]

x=all(lst)
y=any(lst)

print(x,y)

【讨论】:

  • 我认为没有必要与Truehere 进行比较。我认为x = any(i for i in lst) 或只是x = any(lst)all 也是如此)更简洁,更具可读性。
  • 生成器表达式通常与allany 一起使用,因为您通常没有一系列布尔值并且必须创建一个。 lst,然而,一个布尔值序列。
【解决方案2】:

谢谢。我使用以下方法解决了:

x = all(lst)
y = any(lst)
print(x,y)

【讨论】:

    【解决方案3】:

    如果列表中的所有元素都是布尔值,那么更快和最简单的方法是

    lst = [True, True, False, True]
    condition = False not in lst
    
    # in other words
    (False not in lst) == all(lst)
    (True in lst) == any(lst)
    

    如果列表中有一个Falsecondition 将是False

    【讨论】:

      猜你喜欢
      • 2010-10-11
      • 1970-01-01
      • 2011-10-13
      • 2021-12-20
      • 1970-01-01
      • 2020-08-14
      • 2016-05-18
      • 1970-01-01
      • 2021-05-16
      相关资源
      最近更新 更多