대괄호가 없는 Python 목록 이해
Python의 "join" 함수를 사용할 때 인수로 반복 가능 항목이 필요합니다. 일반적으로 리스트 컴프리헨션은 대괄호로 묶이지만 생략할 수도 있습니다. 이 겉보기에 역설적인 동작은 다음과 같은 질문을 제기합니다. "str(_) for _ in xrange(10)" 표현식이 목록을 생성합니까, 아니면 반복 가능을 생성합니까?
생성기 표현식
설명은 목록 이해와 유사한 표기법을 갖지만 대괄호가 없는 Python의 생성기 표현식에 있습니다. 생성기 표현식은 요청 시 요소를 한 번에 하나씩 생성하여 메모리 효율성과 성능을 향상시킵니다.
"join" 예에서 "str(_) for _ in xrange(10)"는 느리게 생성하는 생성기 표현식입니다. 0부터 9까지 숫자의 문자열 표현을 생성합니다. 이 생성기 표현식은 반복 가능하며 "join" 함수의
성능 고려 사항
생성기 표현식은 일반적으로 목록 이해에 비해 성능 이점을 제공하지만 "조인"의 경우 항상 그런 것은 아닙니다. "조인" 기능을 사용하려면 데이터에 대해 두 번의 패스가 필요하므로 전체 목록을 메모리에 저장하는 이점이 있습니다. 결과적으로 목록 이해력("[str(_) for in xrange(10)]")은 "에서 생성기 표현식("str(_) for in xrange(10)")보다 성능이 뛰어납니다. 가입" 컨텍스트. 벤치마크를 통해 이러한 성능 이점이 확인되었습니다.
결론
Python 코드를 최적화하려면 생성기 표현식을 이해하는 것이 중요합니다. 그러나 "조인"이라는 특정 사례에서는 함수가 전체 목록을 두 번 반복해야 하기 때문에 기존 목록 이해가 더 효율적인 옵션으로 남아 있습니다.
위 내용은 Python에서 `str(_) for _ in xrange(10)`는 List입니까, 아니면 Iterable입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!