在列表python itertools列表中标识零

时间:2013-03-09 20:12:59

标签: python itertools

我看起来如下所示:

yyy=[(2.0, 3.4, 3.75), (2.0, 3.4, 0.0), (2.0, 3.4, 0.0), (2.0, 3.4, 3.5), (2.0, 3.4, 0.0)]

我想要做的是确定任何子列表中是否存在0.0(true或false)。所以,我遵循itertools,但我不确定应该如何构造逻辑。

from itertools import *
selectors = [x is 0 for x in yyy]
#[False, False, False, False, False]

显然,我的上述sytax似乎并不正确 - 我想知道是否有人能指出我正确的语法方向。

2 个答案:

答案 0 :(得分:5)

尝试[0.0 in x for x in yyy]

>>> yyy=[(2.0, 3.4, 3.75), (2.0, 3.4, 0.0), (2.0, 3.4, 0.0), (2.0, 3.4, 3.5), (2.0, 3.4, 0.0)]
>>> [0.0 in x for x in yyy]
[False, True, True, False, True]
>>> 

你很亲密。

答案 1 :(得分:1)

只是:

any(0.0 in subtup for subtup in yyy)

演示:

>>> yyy=[(2.0, 3.4, 3.75), (2.0, 3.4, 0.0), (2.0, 3.4, 0.0), (2.0, 3.4, 3.5), (2.0, 3.4, 0.0)]
>>> any(0.0 in subtup for subtup in yyy)
True
>>> yyy=[(2.0, 3.4, 3.75), (2.0, 3.4, 10.0), (2.0, 3.4, 10.0), (2.0, 3.4, 3.5), (2.0, 3.4,10.0)]
>>> any(0.0 in subtup for subtup in yyy)
False