[PAI] 5장 리스트, 딕셔너리

임재영·2022년 1월 6일
0
post-thumbnail

[Topic 1] 능력치를 편의성에 몰빵한 ‘List’

C++ vector 만 사용하더라도 매우 편리하고 신기했는데,
이보다 더 편의성에 능력치를 몰빵한 친구가 있었다. 누구일까?

바로 ‘List’ 라는 자료구조이다. 특징을 정리하면 다음과 같다.

  1. 리스트는 원소의 주소 값을 저장
  • 비교 : C언어는 배열에 원소 값을 저장
  • 장점 : 따라서 각 원소의 자료형이 무엇이든 상관 없다!
  • 단점 : ob_item은 이중 포인터여서, 값 탐색 시 두 번의 탐색 과정을 거치게 되어 속도가 느리다.
  1. 리스트는 다양한 자료형을 단일 리스트에 관리 가능
  • 비교 : C언어는 동적 배열에 삽입할 수 있는 자료형을 동일한 타입으로 제한
  • 특징 : 다양한 활용을 가능하게 한다.
  1. 리스트는 초기 선언시 자료형과 크기 미지정
  • 비교 : C언어는 배열 초기 선언시 자료형과 크기를 고정
  • 특징 : 제한되는 부분이 줄어든다.

[Topic 2] 리스트가 가진 엄청난 스킬 ‘List Comprehension’

리스트 컴프리헨션에 정해진 형식이 있는 이유가 궁금했다.
구글링을 해봤는데 다음 정의가 있었다.

Python supports a concept called “list comprehensions”. It can be used to construct lists in a very natural, easy way, like a mathematician is used to do.

위와 같이 수학자들이 사용하는 식에 차용해서 가져왔다고 한다.


[Topic 3] HashTable vs Dictionary

두 개념이 약간 헷갈렸는데,

  • 공통점 : (Key, Value) 형식의 자료구조
  • 차이점 : Value 에 접근하는 방식의 차이

사실 파이썬에서는 둘을 크게 구분하고 있지 않은 것 같다.

profile
매일매일 발전하는 사람이 되자!

0개의 댓글