python에서 xrange와range
4533 단어 프로그래밍 학습
s=[1,2,3]
그러나python 공식 문서의 정의에 따라 하나의 서열 대상은 모든 요소를 저장할 필요가 없습니다.일반적으로 하나의 서열 대상은 적어도 다음과 같은 두 가지 방법을 실현해야 한다. -len_방법이 방법은 서열의 길이, 즉 서열의 원소 개수를 되돌려줍니다. -getitem_방법이 방법에는 정형 매개 변수가 하나 있다. (index라고 기록해도 무방하다.)이것은 시퀀스에서 index로 표시된 요소의 값을 되돌려야 합니다.예를 들어 다음 코드는 시퀀스 형식을 정의합니다.
class MyRange:
def __init__(self, start, end):
self.start = start
self.end = end
def __len__(self):
return self.end - self.start
def __getitem__(self, index):
if index < 0 or index >= len(self):
raise IndexError
return index + self.start
이것은 start에서end-1 사이의 모든 정수로 구성된 서열을 정의합니다.
myrange = MyRange(0, 10)
print myrange[9]
print myrange[10]
출력은 다음과 같습니다.
Traceback (most recent call last):
File "test.py", line 25, in <module>
print myrange[10]
File "test.py", line 19, in __getitem__
raise IndexError
IndexError
물론 파이톤에서 서열의 하표는 마이너스일 수 있습니다.따라서 Getitem 방법에 대해 다음과 같이 수정합니다.
class MyRange:
def __getitem__(self, index):
index = index if index >= 0 else index + self.end
if index < 0 or index >= len(self):
raise IndexError
return index + self.start
테스트 코드
myrange = MyRange(0, 10)
print myrange[-1]
print myrange[-2]
결과 내보내기
9
8
위에서 소개한 후에 우리는python에서range 방법과 xrange 방법의 차이를 쉽게 이해할 수 있다.
range 방법은 list 대상을 되돌려줍니다. 이것은 전문적인 공간 저장 서열의 모든 요소를 개척해야 합니다.xrange 방법은 xrange 대상을 되돌려줍니다. 이것은 시퀀스 대상이지만, 시퀀스에 있는 요소를 저장하지 않습니다.그 실현 방법은 본고에서 소개한 MyRange 유형과 유사하다.
따라서 서열만 읽으면 xrange 방법의 효율이 비교적 높다.그러나 서열을 바꾸는 원소가 필요하거나 서열에 원소를 삭제해야 한다면,range 방법으로list 대상을 생성할 수 있습니다.
다음으로 이동:http://blog.csdn.net/hedan2013/article/details/55000018
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
2021년 외국 프로그래밍 학습 웹사이트 베스트 5소프트웨어 개발은 빠르게 발전하는 분야입니다. 프로그래밍 기술도 끊임없이 업데이트되고 있습니다. 이 문장에서는 최고의 5 프로그래밍 학습 사이트를 모았습니다. 프로그래밍은 끊임없이 공부해야합니다! Codegym은 J...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.