일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 블록체인
- keras
- 레디스
- pythonic
- smart contract
- javascript
- 개발
- Ethereum
- python
- 이더리움
- 암호화폐
- 백서
- 파이썬
- 비트코인
- Redis
- 문자열
- 마스터링 이더리움
- solidity
- 주소
- 마스터링비트코인
- 개인키
- js
- 알고리즘
- 솔리디티
- 공개키
- 스마트컨트랙트
- node js
- DAPP
- 마스터링 비트코인
- 블록체인개발
- Today
- Total
개발이야기
[ Python Skill ] range 대신 enumerate를 써야하는 이유 본문
Python에서 iterable한 자료구조를 for문을 통해 순회할때 주로 range와 enumerate 두 가지를 사용합니다.
이번 포스팅에서는 range 보다 enumerate를 써야하는 이유에 대해 살펴보겠습니다.
1. range는 len함수와 같이 사용해야한다.
range는 정수 범위를 지정하여 순회할 수 있지만 list와 같은 자료구조를 순회할때는 len을 통해 그 자료구조의 길이 만큼 순회해야 하므로 아래와 같이 사용해야 합니다.
fruits = ['apple', 'grape', 'banana']
for i in range(len(fruits)):
2. 리스트와 같은 자료구조의 인덱스에 접근해야 한다.
또한 range를 사용한다면 각 자료구조의 인덱스로 각각의 원소에 접근할 수 있다는 점입니다.
위에 나온 for문에서 fruits 의 각 원소에 접근하기 위해서는 아래와 같이 직접 인덱스로 접근해야 합니다.
fruits = ['apple', 'grape', 'banana']
for i in range(len(fruits)):
print(fruits[i])
- enumerate
range를 사용함으로서 발생하는 이 두 가지 파이토닉하지 못한 문제를 'enumerate'를 사용하여 한 번에 해결할 수 있습니다.
fruits = ['apple', 'grape', 'banana']
for idx, fruit in enumerate(fruits):
print('{}: {}'.format(idx + 1, fruit))
<출력값>
1: apple
2: grape
3: banana
또한 enumerate는 시작할 숫자를 지정해줄수도 있습니다.
fruits = ['apple', 'grape', 'banana']
for idx, fruit in enumerate(fruits, 1):
print('{}: {}'.format(idx, fruit))
<출력값>
1: apple
2: grape
3: banana
레퍼런스
[1]https://stackoverflow.com/questions/24150762/pythonic-range-vs-enumerate-in-python-for-loop?lq=1
[2] https://stackoverflow.com/questions/49006614/python-range-len-vs-enumerate