Python에서 부작용을 위해 List Comprehension을 사용해야 합니까?
Python에서 함수는 반환보다는 부작용 때문에 호출되는 경우가 많습니다. 가치. 이러한 부작용에는 화면 인쇄, 그래픽 사용자 인터페이스 업데이트 또는 파일 쓰기가 포함될 수 있습니다.
리스트 이해를 사용하여 부작용이 있는 함수를 호출하는 경우 두 가지 일반적인 접근 방식이 있습니다.
접근법 1: Side에 대한 목록 이해 효과
[fun_with_side_effects(x) for x in y if (...conditions...)]
접근 방식 2: 조건부 루프
for x in y: if (...conditions...): fun_with_side_effects(x)
질문이 생깁니다. 어떤 접근 방식이 더 Pythonic할까요?
답변: 접근 방식 2는 강력합니다. 권장
Python에서는 부작용에 대한 목록 이해를 사용하는 것을 강력히 권장하지 않습니다. 그 주된 이유는 중간 목록을 불필요하게 생성하기 때문입니다. 이 목록은 생성된 후 즉시 삭제되므로 목록이 큰 경우 상당한 리소스 낭비가 될 수 있습니다.
반면 조건부 루프 접근 방식은 불필요한 데이터 구조를 생성하지 않습니다. 입력 목록의 각 요소를 직접 평가하여 잠재적으로 오버헤드를 최소화합니다.
위 내용은 Python의 부작용에 대해 List Comprehension을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!