2012-07-05 549 views
0

有沒有更好的方法來編碼?如果E是self.segments或元素位於容器內或容器內的容器中。 (Python)

def __contains__(self, e): 
    return e in self.segments or True in [e in x for x in self.segments] 

該函數將返回true,如果e是在任何self.segments段的。

我仍然試圖學習如何使用[a爲b中的if c]符號,我希望有人可以幫助我簡化該代碼段。計算結果爲True和,沒有方括號中的第一個元素

回答

4
def __contains__(self, e): 
    return e in self.segments or any(e in x for x in self.segments) 

any停止,Python不建立中介名單。

閱讀關於Generator Expressions vs. List Comprehension

+0

非常感謝。它看起來和奇妙的作品。 – Axoren

+0

@Axoren如果答案有幫助,請記住接受它:) – JBernardo

+0

對不起,...再次感謝您。 – Axoren