Python의 enumerate() 함수를 사용하면 for 루프에서 목록이나 튜플과 같은 반복 가능한 객체의 요소와 인덱스 번호(개수, 순서)를 얻을 수 있습니다.
이 문서에서는 enumerate() 함수의 기본 사항을 설명합니다.
- for 루프에서 인덱스를 가져오는 함수:
enumerate()
- 루프에 대한 일반
- enumerate() 함수를 사용하는 For 루프
- enumerate() 함수의 인덱스를 1(0이 아닌 값)에서 시작합니다.
- 증분(단계) 지정
enumerate() 함수는 for 루프에서 인덱스를 가져오는 데 사용할 수 있습니다.
루프에 대한 일반
l = ['Alice', 'Bob', 'Charlie']
for name in l:
print(name)
# Alice
# Bob
# Charlie
enumerate() 함수를 사용하는 For 루프
enumerate() 함수의 인수로 목록과 같은 반복 가능한 객체를 지정합니다.
인덱스 번호와 요소를 순서대로 가져올 수 있습니다.
for i, name in enumerate(l):
print(i, name)
# 0 Alice
# 1 Bob
# 2 Charlie
enumerate() 함수의 인덱스를 1(0이 아닌 값)에서 시작합니다.
위의 예와 같이 기본적으로 enumerate() 함수의 인덱스는 0부터 시작합니다.
0이 아닌 다른 숫자로 시작하려면 enumerate() 함수의 두 번째 인수로 임의의 시작 숫자를 지정하십시오.
처음부터 시작하려면 다음을 수행하십시오.
for i, name in enumerate(l, 1):
print(i, name)
# 1 Alice
# 2 Bob
# 3 Charlie
물론 다른 숫자로 시작할 수도 있습니다.
for i, name in enumerate(l, 42):
print(i, name)
# 42 Alice
# 43 Bob
# 44 Charlie
순차적으로 번호가 매겨진 문자열을 생성하려는 경우에 유용합니다. ‘i+1’을 사용하여 1부터 시작하는 것보다 enumerate() 함수의 두 번째 인수로 시작 번호를 지정하는 것이 더 현명합니다.
for i, name in enumerate(l, 1):
print('{:03}_{}'.format(i, name))
# 001_Alice
# 002_Bob
# 003_Charlie
숫자를 0으로 채우는 데 사용되는 형식 함수에 대한 자세한 내용은 다음 문서를 참조하세요.
증분(단계) 지정
enumerate() 함수에 증분 단계를 지정하는 인수는 없지만 다음을 수행하여 달성할 수 있습니다.
step = 3
for i, name in enumerate(l):
print(i * step, name)
# 0 Alice
# 3 Bob
# 6 Charlie