2012-07-05 2 views
0

더 나은 코딩 방법이 있습니까?요소가 컨테이너 안에 있거나 컨테이너 내의 컨테이너에 있습니다. (Python)

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

이 함수는 e가 self.segments에 있거나 e가 self.segments의 세그먼트에 있으면 true를 반환합니다.

나는 [a for a b if c] 표기법을 사용하는 법을 배우려하고 있으며, 누군가 하나의 StackOverflow가 그 단편을 단순화하는 데 도움이되기를 바라고 있습니다. 대괄호없이, True로 평가하고 첫 번째 요소에

답변

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

any 정류장, 파이썬은 중간 목록을 작성하지 않습니다.

Generator Expressions vs. List Comprehension

+0

고맙습니다. 그것은 멋지고 보입니다. – Axoren

+0

@Axoren 답변이 도움이 되었으면 수락을 기억하십시오 :) – JBernardo

+0

죄송합니다 ... 다시 한 번 감사드립니다. – Axoren