일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- git #github #내일배움캠프
- vscode
- 내일배움캠프
- target
- sql
- 가상환경
- onClick
- python
- with\
- 우선순위
- AI 5기
- Display
- googleappscript
- position
- AI
- 프로그래머스
- time()
- cte
- Level1
- 함수성능평가
- googlesheet
- gitignore
- Iterator
- venv
- iterable
- 함수실행시간
- WIL
- itertools
- 알고리즘
- A태그
- Today
- Total
05의 개발 계발
[TIL] 230324 [python] iterable & iterator & itertools 의 관계 본문
TIL 학습목표
- iterable & iterator & itertools 의 의미를 안다.
- iterable & iterator & itertools 를 구분 할 수 있다.
- iterable & iterator & itertools 의 용도를 안다.
1) 문제점 (Problem)
itertools 에 대해 새로이 배우며, iterable & iterator 와의 관계성에 궁금증이 생겼다.
데이터를 반복하는 일은 개발과정에서 상당히 많은 부분을 차지하므로, 이들의 개념과 용도를 정리해 두도록 하자.
2) 시도해본 것들 (Try)
학습을 진행한 것이므로 배운 내용을 정리하도록 하자.
▶iterable
◇iterable // 한 번에 하나씩 반환할 수 있는 반복가능한 객체 = 연속성 있거나(시퀀스), 1:1 값이 있는(dict) 객체
ex) sequence (list str tuple) + non-sequence (dict, file objects) + iter 또는 getitem로 정의 된 method 등
◇용도 // all, any로 판별 + for 반복문, zip() map() 등
▶iterator
◇iterator // 값을 차례대로 꺼낼 수 있는 객체 = 내장함수iter()을 사용해 iterable객체를 iterator 객체로 만들 수 있다. 스스로 값을 가지고 있지는 않고, 데이터를 보관하고 있는 주소를 담고 있다.
◇용도 // next()를 통해 값을 하나씩 꺼낼 수 있다.
* iterable한 객체들을 iterator로 변환하고, next()를 통해 하나씩 꺼내는 것을 for 반복문이 한번에 해주는 것이다.
▶iteratools
◇itertools // 하나의 모듈로, 반복 가능한 데이터 스트림을 처리하는 데 유용한 함수와 제네레이터를 포함한다.
◇용도 // count() islice() chain() 등
정의만으론 이해도가 부족하다. 실사용 사례가 나올 경우 추가 첨부 하도록하자.
3) 해결 (Solution)
python docs와 wikidocs의 도서 참고, 내가 이해한 정의
- iterable // 반복 가능한 데이터 (list, dict, set, str, bytes, tuple, range)
- iterator // 반복 가능한 데이터의 값을 차례대로 하나씩 꺼낼 수 있는 객체 (next()로 출력)
- itertools // 반복 가능한 데이터(=iterable) 스트림을 처리하는 모듈 (함수와 제네레이터로 구성)
*참고로 python docs의 자체언어번역은 그나마 신뢰할 만하나, 가능한 영문을 봐야 오해의 소지 없이 정의를 이해 할 수 있다. 크롬의 자체 번역을 사용시 의도치 않은 오역으로 인해 잘못된 지식을 습득할 수 있으니 주의!
4) 알게 된 점 (Learnd)
iterable & iterator & itertools 의 의미와 용도를 알게 되었다.
아직 실사용 부분에서는 어려움이 있지만, 반복문은 매우 자주 사용되는 구문이고 itertools를 활용할 수 있어야 효율적으로 반복문을 사용 가능하다.
실제 코드에 적용을 해보도록 하자.
'TIL' 카테고리의 다른 글
[TIL] 230328 [Python] Class의 사용목적 과 list 응용 (0) | 2023.03.28 |
---|---|
[TIL] 230327 [Python] import 사용법 - 파일불러오기 (0) | 2023.03.27 |
[TIL] 230323 [python] .sort 와 sorted()의 차이 (Method 와 Function) (0) | 2023.03.23 |
[TIL] 230322 [python] 함수 실행 시간 측정 (0) | 2023.03.22 |
[TIL] 230321 [알고리즘] [Python] Level1.모의고사 - 코드 축약 (1) | 2023.03.22 |