2016-08-06 2 views
1

다음은 간단한 코드 예제입니다.은 단순히 여전히 action 함수를 호출하는 이해와 for 루프를 교체하는 (예 : 코드 선명도 등의 이유로) 나쁜 방법입니다 : for 루프 대신 내포 사용

>>> def action(num): 
     print "Number is", num 
>>> items = [1, 3, 6] 
>>> for i in [j for j in items if j > 4]: 
     action(i) 
Number is 6 

내 질문

는 다음과 같습니다? 즉 :

>>> (action(j) for j in items if j > 2) 
Number is 6 
+0

아니요, 실제로는 더 좋고 더 빠르다고 생각합니다. 처음에는 목록과 루프 이상을 만들지 않았기 때문에 액션은 아무 것도 반환하지 않기 때문에 'None'목록을 반환합니다. 그리고 당신은리스트 컴을 위해서'[]'를 사용할 것입니다. –

+0

사실 그것은리스트 이해력이 아니라 생성자 스테이트먼트입니다. 비록 그것이 당신의 질문에 중대한 영향을 주는지 나는 모른다. – Tagc

+0

@Tagc 제네레이터를 생성한다는 것은 알고 있지만, 발전기 이해력이라고 부를지는 모르겠지만 목록 이해력에 대해서는 동일한 생각입니다. 어떤 이유로 든 다른 사람보다 선호 될 수 있습니까? – Siwel

답변