반응형
안녕하세요. BlockDMask 입니다.
오늘은 파이썬에서 반복문과 함께 자주 쓰이는 range()
함수의 숨겨진 기능들을 소개하겠습니다.
보통은 단순히 숫자를 반복할 때 쓰지만,step
을 음수로 주거나, reversed()
, len()
없이 슬라이스처럼 다루는 등
알아두면 실전에서 유용한 기능들이 꽤 많습니다.
1. 기본적인 range() 사용법
for i in range(5):
print(i)
출력:
0
1
2
3
4
- 기본적으로 0부터 시작하며, 끝 숫자는 포함하지 않습니다.
- 문법:
range(start, stop, step)
2. 시작 값과 step 지정
for i in range(1, 6, 2):
print(i)
출력:
1
3
5
1부터 시작해서 2씩 증가하며 6 미만까지 반복합니다.
3. step을 음수로 주기 (역순 반복)
for i in range(5, 0, -1):
print(i)
출력:
5
4
3
2
1
역순 반복할 때 매우 유용합니다.
주의: start > stop
일 경우 step
을 음수로 주어야 반복이 실행됩니다.
4. 큰 범위 처리 시 메모리 걱정은?
r = range(0, 1000000000)
print(type(r)) # <class 'range'>
range()
는 리스트가 아닙니다.- 실제로 값을 모두 저장하지 않고, 필요할 때마다 생성하는 이터러블입니다.
print(r[100]) # 100번째 값
print(r[-1]) # 마지막 값
슬라이싱처럼 인덱스로 접근 가능하지만, 리스트 전체를 생성하지 않기 때문에 효율적입니다.
5. reversed(range()) 사용법
for i in reversed(range(1, 6)):
print(i)
출력:
5
4
3
2
1
range(5, 0, -1)
과 동일한 결과를 reversed()
를 사용하여 가독성 있게 표현할 수 있습니다.
6. range 객체는 리스트가 아니다
r = range(3)
print(r) # range(0, 3)
print(list(r)) # [0, 1, 2]
range()
자체는 리스트가 아니라 range
객체입니다.
리스트처럼 사용하려면 list()
로 변환해야 합니다.
7. range에 len() 사용 가능
r = range(100, 200, 10)
print(len(r)) # 10
range
객체는 리스트처럼 len()
으로 개수 확인이 가능합니다.
8. 정수 반복 외에도 응용 가능
data = ['BlockDMask', 'Python', 'Coding']
for i in range(len(data)):
print(i, data[i])
또는 더 깔끔하게:
for i, val in enumerate(data):
print(i, val)
결론
range(start, stop, step)
은step
을 음수로도 줄 수 있습니다.reversed(range())
는 가독성이 좋고, 역순 반복에 유용합니다.range()
는 메모리를 거의 사용하지 않는 이터러블 객체입니다.list()
,len()
, 인덱싱 등 다양한 기능과 함께 사용할 수 있습니다.
이상, 파이썬 range()의 숨겨진 기능들에 대해 예제 중심으로 정리해보았습니다.
오늘도 읽어주셔서 감사합니다.
참조할 이전글 : 2021.05.01 - [<개인공부>/[Python]] - [python] 파이썬 range 함수 정리 및 예제 (숫자 구하기)
반응형
'<개인공부> > [Python]' 카테고리의 다른 글
[Python] 파이썬에서 None, null, is None 차이 정리 (0) | 2025.04.07 |
---|---|
[Python] 파이썬 클래스 변수 vs 인스턴스 변수 차이 (0) | 2025.04.03 |
[Python] 파이썬 클래스 초보자 가이드 (__init__, self) (1) | 2025.04.01 |
[Python] 파이썬에서 날짜 다루기 (datetime 기본부터 실전까지) (0) | 2025.03.31 |
[Python] 파이썬 리스트 컴프리헨션 vs for문 (0) | 2025.03.29 |
[Python] 파이썬 *args와 **kwargs 알아보기 (0) | 2025.03.27 |
[Python] 파이썬에서 파일 경로 다루기 (`os` vs `pathlib`) (0) | 2025.03.25 |
[Python] 파이썬 zip() 함수 활용법 (0) | 2025.03.23 |