반응형
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]
반응형
'Programming Language > Python' 카테고리의 다른 글
[python] 자료형 비교(string, list, tuple, dict, set) (0) | 2025.01.14 |
---|---|
[Do it! 점프 투 파이썬 26-28일차] 8장_정규표현식 (1) | 2024.04.22 |
[Do it! 점프 투 파이썬 25일차] 7장_파이썬 날아오르기 (이터레이터와 제너레이터, 파이썬 타입 어노테이션) (1) | 2024.04.18 |
[Do it! 점프 투 파이썬 24일차] 7장_파이썬 날아오르기 (파이썬과 유니코드, 클로저와 데코레이터) (1) | 2024.04.18 |
[Do it! 점프 투 파이썬 22일차, 23일차] 6장_파이썬 프로그래밍, 어떻게 시작해야 할까? (0) | 2024.04.16 |
댓글