300x250
반복문을 사용할 때,
원소와 인덱스를 동시에 얻고 싶을 때가 있습니다.
가장 흔하게 떠올릴 수 있는 코드는 아래와 같습니다.
idx = 0
for element in ['AA', 'bb', 'Cc']:
print(idx, element)
idx += 1
...
0 AA
1 bb
2 Cc
그런데 이 방법은 반복문이 종료된 이후에도 idx 라는 변수를 남기게 되어 찝찝하다는 단점이 있습니다.
이럴때 쓰는 파이썬 내장함수가 바로 enumerate 입니다.
위의 코드에서 idx 변수를 지워버리고, 순회의 대상이 되는 목록을 enumerate 함수로 감싸버리면 됩니다.
for i in enumerate(['AA', 'bb', 'Cc']):
print(i)
...
(0, 'AA')
(1, 'bb')
(2, 'Cc')
상기의 코드에서는 tuple로 인덱스와 원소가 결합되어 반환됩니다.
따라서 별도로 분리하여 활용하고자 한다면 하기와 같은 방식의 코드를 사용하면 됩니다.
tuple 로 반환되는 값을 unpacking 하는 것입니다.
for idx,element in enumerate(['AA', 'bb', 'Cc']):
print(idx,element)
...
0 AA
1 bb
2 Cc
이렇게 인덱스와 원소를 동시에 얻은 뒤 추가적으로 활용하는 사례는 추후 흔한생각 카테고리에 포스팅할 예정입니다.
반응형
'흔한말 (collection) > Python' 카테고리의 다른 글
정규표현식 잘 몰라도 코드 짤 수 있어요 (0) | 2022.03.04 |
---|---|
Python For 문을 연습하는 방법(feat. Revit Dynamo) (0) | 2022.03.01 |
Jupyter Notebook을 환경설정 없이 간편하게 쓰는 방법? (0) | 2022.02.21 |
Python 리스트 컴프리헨션 맛보기(할-짝) (0) | 2022.02.16 |
파이썬 조건문 예제입니다. 근데 이제 다이나모를 곁들인.. (0) | 2022.02.08 |