1

我看了一下,如下所示:

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(真或假)。所以,我关注itertools,但我不确定应该如何构建逻辑。

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

显然,我上面的语法似乎不正确 - 我想知道是否有人可以为我指出正确的语法方向。

4

2 回答 2

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]
>>> 

你很亲密。

于 2013-03-09T20:15:07.160 回答
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
于 2013-03-09T20:14:05.913 回答