> 백엔드 개발 > 파이썬 튜토리얼 > Python 3에서 `1015 in range(1015 1)`가 왜 이렇게 빠른가요?

Python 3에서 `1015 in range(1015 1)`가 왜 이렇게 빠른가요?

DDD
풀어 주다: 2024-12-13 19:19:11
원래의
891명이 탐색했습니다.

Why is `1015 in range(1015   1)` so fast in Python 3?

Python 3에서 Quadrillion in Range(Quadrillion 1)가 왜 빠른가요?

질문:

Python 3의 range() 함수는 다음을 생성하는 생성기와 유사한 객체입니다. 수요에 따른 가치. 이를 감안할 때 범위(1조 ​​1)에서 1000조 값을 생성해야 하므로 시간이 많이 걸릴 것으로 예상할 수 있습니다. 그런데 이 작업은 놀라울 정도로 빠릅니다. 왜 그렇습니까?

답변:

Python 3의 range() 객체는 해당 요소를 즉시 생성하지 않는 스마트 시퀀스입니다. 시작, 중지 및 단계 값만 보유하고 반복 중에 요청 시 다음 정수를 계산합니다.

결정적으로 range()는 contains 후크를 구현합니다. 숫자가 범위 내에 속합니다. 이 계산은 (거의) 일정 시간 연산이므로 개체는 범위 내 가능한 모든 값을 검색할 필요가 없습니다.

선형 검색이 발생하는 범위 내 모든 값 목록과 달리 범위 ()는 O(log N) 시간으로 소속을 계산합니다. 여기서 N은 범위의 요소 수입니다. 이러한 최적화는 Python 정수의 무한한 특성과 최적화된 C 코드의 효율적인 처리 덕분에 가능해졌습니다.

위 내용은 Python 3에서 `1015 in range(1015 1)`가 왜 이렇게 빠른가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿