enumerate
: 파이썬 내장 함수 중 하나enumerate()
함수는 다음과 같은 문법으로 사용enumerate(iterable, start = 0)
iterable
: 반복 가능한(iterable) 객체
(EX. 리스트(list), 튜플(tuple), 문자열(str), 딕셔너리(dictionary) 등)
start
: 인덱스의 시작값 설정, 기본값은 0
enumerate()
함수는 인덱스와 원소로 이루어진 튜플(tuple)을 생성한다.
- index 변수 0,1,2 와 abc 변수 a,b,c 생성
def solution(s): s = s.split(' ') answer = [] for word in s: ss = '' for x, y in enumerate(word): if x % 2 == 0: ss += y.upper() else: ss += y.lower() answer.append(ss) return ' '.join(answer)
solution('I want to live happily')
for x, y in enumerate(word):
공백으로 구분된 단어들을 하나씩 word 변수에 넣고,
word에 입력된 단어를 문자 하나씩 x라는 인덱스와 y라는 문자로 반복
인덱스 x에 해당하는 문자 y를 각각 원하는대로 다루기가 가능해진다.
for 문
:
내부적으로 in 뒤에 오는 목록을 대상으로 계속해서 next() 함수를 호출하는 것과 동일한 효과
따라서, 일반 리스트를 iter() 함수에 넘겨 반복자(iterator)로 만든 후,
next() 함수를 호출해보면 원소들이 차례로 얻어지는 것을 알 수 있다.
enumerate()
함수 :
호출한 결과를 대상으로 next() 함수를 계속해서 호출해보면,
인덱스와 원소의 쌍이 튜플(tuple)의 형태로 차례로 얻어지는 것을 알 수 있다.
결국, enumerate()
함수는 인자로 넘어온 목록을 기준으로
인덱스와 원소를 차례대로 접근하게 해주는 반복자(iterator) 객체를 반환해주는 함수 !
enumerate()
함수의 반환 값을 리스트로 변환해보면 좀 더 명확하게 확인할 수 있다.