Python

열혈강의 파이썬 - 이강성
요즘 로버트 C. 마틴의 클린 코드를 공부하기 시작했다. 그런데 책에서 예시로 쓰이는 자바를 전혀 모르니 옛날에 사둔 "난 정말 JAVA를 공부한적이 없다구요"라는 책으로 문법과 기본적인 개념들을 익히고 있었다. (2009년에 나온 책이다. 어차피 클린코드도 2008년에 나온 책이니 어찌보면 아주 적절한 공부 자료다.) 그러다 문득 예전에 파이썬 책도 샀던 기억이 나서 "열혈강의 파이썬"을 꺼내봤다. 이 책은 무려 2005년도에 출판된 책이다. 내가 이 책을 샀을 때가 아마 2013~2014년 즈음일테니 이미 8~9년이 지난 상황이고 이 책을 보는 현재가 2022년이니 책이 쓰인지는 17년이라는 시간이 흘러버렸다. 무려 파이썬 2.4를 최신으로 소개하고 있는 이 책에서 배울 수 있는 내용이 있을까? 프로..
[Python] Iterable, Iterator, Generator, yield. [i for i in a]와 (i for i in a)가 다른 이유
스포일러: Iterable a에 대해 [i for i in a]은 list를 반환하고 (i for i in a)는 Generator를 반환한다. 무엇이 다를까? !주의: Iterable과 Iterator를 잘 구분하여 읽어야 한다. Iterable Iterable는 반복적으로 포함된 요소를 반환할 수 있는 객체이며 list, dict, set, str, bytes, tuple 등이 예시이다. Python에서 Iteratable은 __iter__ method를 포함하는 객체이다. 객체나 인스턴스가 가진 method와 attribute를 출력해주는 dir 함수를 통해 Iterable임을 확인할 수 있다. >>> dir(list) ['__add__', '__class__', '__contains__', '__..