저번 반복문 게시글을 쓰면서 새로 배운 기능인 enumerate를 정리해보려합니다.
enumerate는 순서가 있는 자료형(list,set,tuple,dics,str) 즉 interable을 입력받으면, 인덱스와 값을 함께 반환합니다.
기본적인 형식은 아래와 같습니다.
enumerate(순서가 있는 객체, start=0)
start로 인덱스 값의 시작 값을 설정할 수 있습니다. start를 설정하지 않으면 시작 값은 0입니다.
list를 이용해 enumerate를 사용해보겠습니다.
country = ["Taiwan","Japan","Russia","NorthKorea","China"]
print(list(enumerate(country))
#출력
[(0, 'Taiwan'), (1, 'Japan'), (2, 'Russia'), (3, 'NorthKorea'), (4, 'China')]
위 코드처럼 enumerate는 list의 인덱스와 값은 튜플로 반환하는 것을 알 수 있습니다.
enumerate는 for과 자주 사용됩니다.
아래의 예제을 들어보겠습니다.
people = ["Bae", "Lee", "Park", "Kim"]
for i in enumerate(people):
print(i)
#출력
[0, 'Bae']
[1, 'Lee']
[2, 'Park']
[3, 'Kim']
0부터 사람을 세는게 조금 불편하니 start값을 설정해서 1부터 시작하도록 해보겠습니다.
people = ["Bae", "Lee", "Park", "Kim"]
for i in enumerate(people, start = 1):
print(i)
#출력
[1, 'Bae']
[2, 'Lee']
[3, 'Park']
[4, 'Kim']
start값을 1로 설정하니 인간이 보기에 아주 편안하게 바뀌었습니다.
문론 순서가 있는 자료형을 사용할 수 있으니 문자열도 사용 할 수 있습니다.
memo = "I just want to play and eat"
for i in enumerate(memo.split(" ")):
print(i, end=" ")
#출력
(0, 'I') (1, 'just') (2, 'want') (3, 'to') (4, 'play') (5, 'and') (6, 'eat')