【发布时间】:2015-11-16 19:45:35
【问题描述】:
我有一个返回布尔值的三元素元组的方法,我在循环中调用它。我想最终得到一个包含or 各个元组结果的三元素元组。如果该方法只返回一个布尔值,那就是:
result = False
for j in some_list: # there is more processing in the loop, omitted
result |= method(j)
return result
我可以以某种优雅的方式将其概括为method() 现在返回的元组吗?当然可以:
result = False, False, False
for j in some_list:
res1, res2, res3 = method(j)
result = res1 | result[0], res2 | result[1], res3 | result[2]
return result
但似乎有点不雅。
编辑:澄清我想在两种情况下都返回结果 - 首先是一个布尔值,然后是一个布尔值元组
【问题讨论】:
-
您是否有特殊的理由在
bools 上使用按位或运算符? -
@Josh:这就是代码中使用的内容-我应该将其更改为还是?
-
我会这么认为。如果您想了解更多信息,请参阅Python boolean operators vs bitwise operators。
-
@JoshCaswell:你难道还没有发现
result |= method(j)比 result = result 或 method(j) 更优雅(可读)` -
就个人而言,不,因为在阅读
|时,我希望这些类型用于它们的位值,而不是它们的布尔值。
标签: python python-2.7 tuples iterable-unpacking