Python

    iterator와 lazy evaluation

    면접 스터디에서 질문 iterator와 iterable의 차이점은 무엇입니까? 에 대해 공부하다가 궁금증이 생겼다. 먼저 질문에 답을 해보자면, iterator iterable 객체를 순회하는 객체 iter() : iterable 객체로부터 iterator를 생성하는 메소드 next() : 메소드로 다음 요소를 탐색한다. (__next()__ 를 호출) iterable 한 번에 하나씩 돌려줄 수 있는 특성 iterable 한 객체 = 한 번에 하나씩 돌려줄 수 있는 객체라는 뜻 = 순회할 수 있는 객체 e.g. list, set, tuple, dictionary, string 로 정리할 수 있다. 또 중요한 점은 iterator는 항상 iterable 하지만, iterable 한 객체는 무조건 itera..

    튜플 (Tuple)

    튜플의 특징 1. 변경이 불가능하다. (immutable) - 리스트와 차이점 - 선언된 후에는 요소를 변경할 수 없다. 왜? 효율성 때문에 용량이 적고, 접근이 빠르다. 따라서 변경할 일이 없다면 리스트보다 튜플을 사용하는 것이 보다 효율적임 - 변경할 수 없기 때문에 정렬과 관련된 내장 함수를 사용할 수 없다. (e.g. sort(), reverse()) 2. 여러 값에 대해 비교가 가능하다. (0, 1, 2) >> True ('Apple', 'Juice') > ('Banana', 'Smoothie') >>> False - 왼쪽부터 차례대로 비교한 후 값이 다를 경우 큰지 작은지 판단한다. - 판단한 후에는 나머지 값들을 비교하지 않는다.