오늘 TIL 3줄 요약
파이썬의 자료형은 모두 객체
다양한 모듈들, 특히 딕셔너리와 관련된 특수 형태의 컨테이너 자료형들을 활용하자
defaultdict
,Counter
,OrderedDict
TIL (Today I Learned) 날짜
2022.07.20. WED
오늘 읽은 범위
파이썬 알고리즘 인터뷰 5장 리스트, 딕셔너리
책에서 기억하고 싶은 내용을 써보세요.
파이썬은 모든 것이 객체다.리스트 또한 객체에 대한 포인터목록을 관리하는 형태로 구현되어 있다.
// CPython 에서 리스트는 요소에 대한 포인터목록을 갖고 있는 구조체로 선언되어 있다. typeof struct { PyObject_VAR_HEAD PyObject **ob_item; // 포인트 목록으로 사이즈를 조절하는 형태로 리스트요소 추가가 구현된다. Py_ssize_t allocated; } pyListObject;
이로인해 파이썬의 리스트는 배열과 연결 리스트를 합친듯한 강력한 기능을 제공할 수 있다.(그 과정에서 속도는 희생된다)
파이썬의 딕셔너리는 숫자, 문자, 집합까지 불변 객체를 모두 키로 사용한다. 이 과정을 해싱이라고 하며, 해시 테이블을 이용해 자료를 저장한다. 입력과 조회는 O(1)에 가능하다.(최악의 경우에는 O(n))
3.7버전부터는 Dict의 입력순서가 유지되나, 3.6이하에서는
collections.OrderedDict()
라는 별도 자료형을 이용해야 유지된다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
당연하지만 다양한 내장 모듈들을 이해하고 문제풀이에 적용하는 것이 중요할듯..
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
CPython?
- 파이썬 프로그래밍언어의 참조 구현체. 내부가 C 언어로 구현된 파이썬이며 코드는 여기에서 확인가능.
- 이름에서 추측할 수 있듯 CPython 외에도 JVM에서 실행할 수 있는 Jython도 있으며 python으로 구현한 pypy도 있다고한다.
'개발 > 북TIL' 카테고리의 다른 글
파이썬 알고리즘 인터뷰 9, 10, 11장 - 스택, 큐, 데크, 우선순위 큐, 해시 테이블 (0) | 2022.11.07 |
---|---|
[북TIL] 파이썬알고리즘인터뷰 6. 문자열 조작 (0) | 2022.07.27 |
[북TIL] 파이썬 알고리즘 인터뷰 1~3장 (0) | 2022.07.14 |
[북TIL] 실용주의 프로그래머 4. 실용주의 편집증 (0) | 2022.05.20 |
[북TIL] 실용주의 프로그래머 3. 기본도구 (0) | 2022.05.18 |