728x90
백준 기본 문제들을 풀면서
iter와 enumerate에 대해 알게 되어 기록을 남기려고 한다.
개요
파이썬을 공부하면서 iterable한 자료형의 활용성이 너무 좋다는 것을 계속해서 체감하게 된다.
때문에 이번 기록에서는 iterator과 enumerate에 대해 기록하려고 한다.
Iterator
iterator는 iterable한 객체의 메서드를 통해 만들어질 수 있는 객체이다.
list 자료형을 이용해 iterator를 직접 만들어보자.
list=['a','b','c']
print(list.__iter__())
#list_iterator object
print(iter(list))
#list_iterator object
iterator 객체가 만들어졌음을 알 수 있다.
iterator 객체가 생성되면 내장함수 next를 사용할 수 있다.
list=['a','b','c']
L=iter(list)
for _ in range(len(list)):
print(next(L))
사진과 같은 실행결과를 얻을 수 있다.
리스트 길이를 초과해서 next 함수를 실행시키면,
StopIteration 이라는 에러가 뜬다.
Python에서 많이 쓰이는 for문도 이 next를 활용하는 게 아닌가 생각이 든다.
Enumerate
enumerate 객체는 iterator 객체와 유사하지만 next 함수를 사용했을 때 인덱스도 반환해준다.
iterator와 마찬가지로 iterable한 자료형을 함수를 이용해 enumerate 객체로 바꿀 수 있다.
list=['a','b','c']
letter=enumerate(list)
print(letter)
#enumerate object
이번엔 next 함수를 사용해서 반환값들을 보자.
for _ in range(len(list)):
print(next(letter))
위와 같이 튜플 형태로 인덱스와 값을 반환한 것을 볼 수 있다.
list크기를 초과해서 next 함수를 사용하면,
iterator와 마찬가지로 StopIteration 에러가 나는 것을 알 수 있다.
list=['a','b','c']
for idx,val in enumerate(list):
print(idx,val)
위와 같이 enumerate를 이용해 for문을 사용할 수도 있다.
마치며
본격적인 코딩 테스트 준비를 하기에 앞서,
백준에서 기본 문제들을 풀어보면서 파이썬 문법에 대해 익숙해지려고 한다.
몰랐던 개념들이나 공부를 확실히 하고 가야할 것들에 대해서는 꾸준히 기록을 남기려고 한다.
잘못된 정보에 대한 피드백은 환영입니다.
감사합니다.
728x90
'Python' 카테고리의 다른 글
[Python] Phython Asterisk(*) 사용법 (0) | 2022.12.11 |
---|---|
[Python] 파이썬 주요 라이브러리(math,iter,heapq,bisect,collections) (0) | 2022.12.03 |
[Python] 파이썬 기본 개념(자료형, 함수, 입출력) (0) | 2022.12.03 |
[Python] Python format 사용법 (0) | 2022.07.12 |