【问题标题】:Logical AND operation across multiple lists [duplicate]跨多个列表的逻辑与运算[重复]
【发布时间】:2020-05-31 09:11:53
【问题描述】:

我有一本看起来像这样的字典:

d= {'GAAP':[True,True],'L1':[True,False],'L2':[True,True]}

我想对字典中的每个值执行逻辑 AND 运算并返回 True/False 值的 LIST。比如:

for counter in range(0,2):
    print(d['GAAP'][counter] & d['L1'][counter] & d['L2'][counter])

我的字典相当大,因此希望避免手动键入每个键来执行逻辑与。

【问题讨论】:

标签: python boolean-operations elementwise-operations


【解决方案1】:

一种方法是使用zip 获取所有对应的元素,然后询问它们是否为all true:

map(all, zip(*d.values()))

结果:[True, False]

【讨论】:

  • 非常有效的解决方案!请注意,map(...) 不返回列表,而是延迟评估,就像 zip(...) 一样,因此要获取结果列表,您需要将 list(...) 包裹起来。
  • @NiklasMertsch - 这是真的。正在考虑是否将其添加到答案中:)
猜你喜欢
  • 2019-10-24
  • 2021-08-05
  • 1970-01-01
  • 2019-09-06
  • 2019-04-21
  • 2011-03-14
  • 2020-10-02
  • 1970-01-01
相关资源
最近更新 更多