Python 의 range 와 xrange 의 차 이 를 깊이 이해 하 다.

우 리 는 이미 range 와 xrange 의 차이 에 대한 기초 지식 을 소개 한 적 이 있 으 며,관심 이 있 는 친 구 는 참고 할 수 있다.
 python 에서 xrange 와 range 의 차이
python 에서 range()와 xrange()용법 분석
이번 편집장 은 range 와 xrange 의 차 이 를 깊이 이해 하 는 데 도움 을 주 었 다.
두 가지 용법 은 다음 과 같다.
1.range([start], stop[, step])
등차 수열 로 되돌아가다.등차 수열 을 구축 합 니 다.출발점 은 start 이 고 종점 은 stop 이지 만 stop 을 포함 하지 않 습 니 다.공차 는 step 입 니 다.
start 와 step 는 옵션 이 있 습 니 다.start 를 주지 않 았 을 때 0 부터 시작 합 니 다.step 를 주지 않 았 을 때 기본 공차 가 1 입 니 다.
예 를 들 면:

>>> range(10)               #   0,   10,     10
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,10)              #   1,   10,     10
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,10,2)             #   1,   10,   2
[1, 3, 5, 7, 9]
>>> range(0,-10,-1)            #   1,   10,   -1 
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0,-10,1)            #   0,   -10,      ,       ,     
[]
>>> range(0)               #   0,     
[]
>>> range(1,0)              #      ,     
[]
2.xrange([start], stop[, step])
xrange 는 range 와 유사 합 니 다.배열 list 가 아 닌'xrange object'대상 을 되 돌려 줍 니 다.
큰 디지털 서열 을 만 들 려 면 xrange 를 사용 하면 range 보다 성능 이 훨씬 좋 습 니 다.올 라 오 자마자 큰 메모리 공간 을 열 필요 가 없 기 때 문 입 니 다.
예 를 들 면:

>>> lst = xrange(1,10)
>>> lst
xrange(1, 10)
>>> type(lst)
<type 'xrange'>
>>> list(lst)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
차 이 는 다음 과 같다.
1.range 와 xrange 는 모두 순환 에서 사용 되 며 출력 결 과 는 같 습 니 다.
2.range 는 list 대상 을 되 돌려 주 고 xrange 는 생 성기 대상(xrange object)을 되 돌려 줍 니 다.
3.xrange 는 list 를 직접 만 들 지 않 고 매번 호출 할 때마다 그 중의 한 값 을 되 돌려 줍 니 다.메모리 공간 은 매우 적 기 때문에 성능 이 매우 좋 습 니 다.
보충 점:

#       range,      。
>>> lst = range(10)
>>> lst2 = list(range(10))
>>> lst3 = [x for x in range(10)]
>>> lst
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst2
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst3
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst == lst2 and lst2 == lst3
True
메모:Python 3.x 는 xrange 를 제거 하고 모두 range 로 대체 합 니 다.

좋은 웹페이지 즐겨찾기