본문 바로가기
Programming Language/Python

[Python] 파이썬 v.2.7과 파이썬 v.3에서의 range() 함수 비교

by 요호유후 2025. 1. 7.
반응형

range() 함수는 파이썬 v.2.7과 파이썬 v.3에서 조금의 차이가 있다.

v.2.7에서는 연속된 숫자가 들어있는 list로 반환하지만,

v.3에서는 객체(반복 가능한 객체)로 반환한다.

 

이번글에선 파이썬 버전에 따른 range() 함수의 차이점에 대해 정리하려 한다.

 

 

파이썬 v.2.7

  •  리스트로 반환하기 때문에 아주 큰 숫자를 지정하면 메모리 사용량이 많아진다.
  •  xrange() 함수를 이용하여 리스트 대신 객체를 생성할 수도 있다.

 


>>> range(5)

# 출력 : [0, 1, 2, 3, 4]

 

 

파이썬 v.3

  • 리스트가 아닌 객체로 반환하고 이터레이터(iterator)를 생성한다.
  • 여기서 이터레이터(iterator)란?

        - 파이썬에서 반복을 지원하기 위한 객체이다.

        - '__iter__'과 '__next__' 메서드를 가지고 있다.

        -  주로 for문과 같은 반복문에서 사용된다.

        - 값이 필요한 시점에 값을 생성하는 방식으로 메모리를 효율적으롤 사용할 수 있다.

 

>>> range(5)

# 출력 : range(0, 5)

 

  • 필요에 따라 list() 함수를 사용하여 리스트를 반환할 수 있다.
  • 아래와 같이 사용한다.

 

>>> list(range(5)) 

# 출력 : [0, 1, 2, 3, 4]

 

 

반응형

댓글