목록 이해가 목록 추가보다 성능이 뛰어난 이유
목록 이해가 단순한 표현 설탕으로 인식됨에도 불구하고 목록 추가에 비해 상당한 속도 이점을 보여줍니다. . 이러한 차이는 표현적인 차이를 넘어 확장됩니다.
설명하기 위해 다음 timeit 벤치마크를 고려해보세요.
<code class="python">import timeit time = timeit.timeit('t=[]\nfor i in range(10000):\n t.append(i)', number=10000) time2 = timeit.timeit('t=[i for i in range(10000)]', number=10000)</code>
결과에 따르면 목록 이해가 목록에 추가하는 것보다 약 50% 더 빠르게 실행되는 것으로 나타났습니다.
속도 증가 이유
목록 이해는 여러 가지 성능 최적화를 활용합니다.
예
다음 코드 조각을 고려하세요.
<code class="python">def f1(): l = [] # Create a new list for i in range(5): # Iterate through a range l.append(i) # Append each number to the list def f2(): [i for i in range(5)] # Use list comprehension to create a new list</code>
dis 모듈을 사용하여 이러한 함수를 분해하면 차이점이 드러납니다.
<code class="python">dis.dis(f1) dis.dis(f2)</code>
f1에서는 목록 생성과 추가 속성(오프셋 18 및 20)의 로드 및 호출을 관찰합니다. 그러나 f2에서는 이러한 연산이 없기 때문에 더 효율적인 코드가 됩니다.
결론
목록 내포는 속성 로딩, 함수 호출 및 기능 프레임의 일시 중지 및 재개와 관련된 오버헤드. 결과적으로 속도가 최우선인 새 목록을 만드는 데 권장되는 경우가 많습니다.
위 내용은 Python에서 목록 추가보다 목록 이해가 더 빠른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!