파이썬 range, xrange차이
파이썬 range, xrange차이
- 파이썬 3 부터는 range 가 내부적으로 xrange 로 동작하도록 바뀌었다.
range 객체
# python2
>>> r = range(10)
>>> type(r)
<type 'list'>
>>> r
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
객체 타입이 list 로 나온다.
xrange 객체
# python2
>>> xr = xrange(10)
>>> type(xr)
<type 'xrange'>
>>> xr
xrange(10)
xrange 객체로 나온다.
- xrange는 generator(혹은 iterator)의 일종이라고 이해 하면 된다.
-
xrange 는 range 에 비해 메모리 효율이 좋다.
- range 메모리 사용량
# python2
>>> import sys
>>> r = range(10000)
>>> sys.getsizeof(r)
80072
- xrange 메모리 사용량
# python2
>>> import sys
>>> xr = range(10000)
>>> sys.getsizeof(xr)
40
출처 : https://itholic.github.io/python-range-xrange/