본문 바로가기

ETC

[python] enumerate(), range() 차이점

range

  • range() 함수는 range(시작 숫자, 종료 숫자, step)의 형태로 사용한다. 
  • range의 결과는 시작숫자 이상 ~ 종료 숫자 미만의 컬렉션을 생성한다.
  • 사용할 때, 시작 숫자와 step은 생략 가능하다.
>>> range(5)
range(0, 5)
>>> for i in range(5):
...     print(i)
... 
0
1
2
3
4
>>> for j in range(10,20,2):
...     print(j)
... 
10
12
14
16
18
# 파이썬에서 권장하지 않는 패턴
>>> s = [1, 3, 5]
>>> for i in range(len(s)):
...     print(s[i])
... 
1
3
5

# 파이썬에서 권장하는 패턴
>>> for i in s:
...     print(i)
... 
1
3
5

 

enumerate

  • 반복문 사용시 몇번째인지 확인이 필요한 경우 사용한다. 
  • 인덱스 번호와 컬렉션의 원소를 튜플(tuple) 형태로 함께 반환해 준다.
>>> t = [1, 5, 7, 35, 43, 51]
>>> for p in enumerate(t):
...     print(p)
... 
(0, 1)
(1, 5)
(2, 7)
(3, 35)
(4, 43)
(5, 51)