我看起来如下所示:
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似乎并不正确 - 我想知道是否有人能指出我正确的语法方向。
答案 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