如何仅将元组内的true值赋给变量

时间:2017-05-28 04:30:43

标签: python tuples

例如a = (3, False, False, False) 或a = (False, 4, False, False)

如何在python中将元组的唯一真值分配给变量?

我不关心这个位置,并且永远不会有2个值是真的,所以

例如,如果

a = (3, False, False, False),

我想要b = 3(a的唯一真值) 或者如果

a = (False, 4, False, False)

我想要b = 4

编辑:

我能做到:

for value in a:
    if value:
        print value

但对于这样一个简单的问题,有没有那么简单的方法呢?

3 个答案:

答案 0 :(得分:4)

filterNone一起用作功能元素:

>>> a=filter(None,(3, False, False, False))

或者只是实际使用带有break的循环,并且循环元素的最后一个值就是你所寻求的:

>>> for e in (3, False, False, False):
...    if e: break
... 
>>> e
3

答案 1 :(得分:1)

a = [i for i in a if i is not False][0]

答案 2 :(得分:0)

使用next和生成器表达式。

next(x in a if x)