일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 문자열
- 솔리디티
- 스마트컨트랙트
- 마스터링 비트코인
- smart contract
- 블록체인개발
- 파이썬
- javascript
- 개발
- Redis
- 주소
- DAPP
- pythonic
- 블록체인
- python
- 비트코인
- 마스터링비트코인
- solidity
- 이더리움
- keras
- 알고리즘
- 공개키
- 개인키
- 암호화폐
- 마스터링 이더리움
- node js
- 레디스
- Ethereum
- 백서
- js
- 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
Pythonic: range vs enumerate in python for loop
Could you please tell me why it is considered as "not pythonic" when I need the index and the value when looping over a list and use: a = [1,2,3] for i in range(len(a)): # i is the idx # a[i] ...
stackoverflow.com
[2] https://stackoverflow.com/questions/49006614/python-range-len-vs-enumerate
Python range len vs enumerate
I read from range(len(list)) or enumerate(list)? that using range(len(s)) is not very good way to write Python. How one can write for loops in alternative way if we do not need to loop len(s) times...
stackoverflow.com