PYTHON#ENUMERATE

codataffee·2024년 5월 7일
0

PYTHON

목록 보기
12/40
post-thumbnail

개요


📌 ENUMERATE 함수

  • enumerate : 파이썬 내장 함수 중 하나
    반복 가능한 객체를 인자로 받아 해당 객체의 요소들을 순회하면서,
    각 요소의 인덱스와 값을 순서쌍으로 반환한다.

1. 사용법

  • enumerate() 함수는 다음과 같은 문법으로 사용
    enumerate(iterable, start = 0)

    iterable : 반복 가능한(iterable) 객체
    (EX. 리스트(list), 튜플(tuple), 문자열(str), 딕셔너리(dictionary) 등)
    start: 인덱스의 시작값 설정, 기본값은 0


2. 예제

  • 기본적으로 enumerate() 함수는 인덱스와 원소로 이루어진 튜플(tuple)을 생성한다.


  • 인덱스와 원소를 각각 다른 변수에 할당하고 싶다면 인자 풀기(unpacking) 해주기

  • index 변수 0,1,2 와 abc 변수 a,b,c 생성

  • 시작 인덱스 변경


3. 문제 적용

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를 각각 원하는대로 다루기가 가능해진다.


4. 함수 원리 이해하기

  • for 문 :
    내부적으로 in 뒤에 오는 목록을 대상으로 계속해서 next() 함수를 호출하는 것과 동일한 효과

  • 따라서, 일반 리스트를 iter() 함수에 넘겨 반복자(iterator)로 만든 후,
    next() 함수를 호출해보면 원소들이 차례로 얻어지는 것을 알 수 있다.




  • enumerate() 함수 :
    호출한 결과를 대상으로 next() 함수를 계속해서 호출해보면,
    인덱스와 원소의 쌍이 튜플(tuple)의 형태로 차례로 얻어지는 것을 알 수 있다.



  • 결국, enumerate() 함수는 인자로 넘어온 목록을 기준으로
    인덱스와 원소를 차례대로 접근하게 해주는 반복자(iterator) 객체를 반환해주는 함수 !
    enumerate() 함수의 반환 값을 리스트로 변환해보면 좀 더 명확하게 확인할 수 있다.


profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보