less than 1 minute read

파이썬 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/

Categories:

Updated: