5장 리스트, 딕셔너리

·2021년 1월 17일
0

Python

목록 보기
1/7

이 페이지의 모든 내용은 저자 박상길 님의 파이썬 알고리즘 인터뷰를 기반으로 정리한 내용임을 밝힙니다.

리스트

C의 배열 != python의 list ( 사실상, 파이썬은 모든게 객체! )
그렇기 때문에 reference 형식을 취하며 이로 인해 부득이하게 속도가 느리다.


딕셔너리

내부적으로 해시테이블로 구현. 즉, 해싱을 통해 해시 테이블에 자료를 저장한다.
이 말은 무엇이냐? 입력과 조회 모두 O(n)에 가능하다. key를 이용해 value를 찾는다!

딕셔너리의 활용 방법

1.선언 방법

>>>a=dict() or a={}

2.선언과 할당

>>>a={'key1':'value1', 'key2':'value2'}
>>>a
{'key1':'value1', 'key2':'value2'}
>>>a['key3']=['value3']
{'key1':'value1', 'key2':'value2','key3':'value3'}

이 때 value는 여러개 불가

...

딕셔너리 모듈

  1. defaultdict 객체
    defaultdict 객체는 존재하지 않는 키를 조회할 경우, 에러 메세지를 출력하는 대신 디폴트값을 기준으로 해당 키에 대한 딕셔너리 아이템은 생성해준다.
>>> a=collections.defaultdict(int)
>>>a['A'] = 5
>>>a['B'] = 4
>>>a
defaultdict(<class 'int>',{'A':5, 'B':4}

여기서는 A와 B만을 할당했다.

>>>a['C'] +=1
>>>a
defaultdict(<class 'int'>, {'A': 5, 'B': 4, 'C': 1})
  1. Counter 객체
    Counter객체는 아이템에 대한 개수를 계산해 딕셔너리로 리턴한다.
>>>a=[1,2,1,4,5,5,6,6]
>>>b=collections.Counter(a)
>>>b
Counter({1:2,5:2,6:2,2:1,4:1})

즉, Counter 객체의 key는 item이 value에는 item의 개수가 저장된다. ( 이 때, Counter(=dictionary)에 저장될때 key의 크기는 자동적으로 계산되어 sort 되는듯 )
여기서 다시 또 가장 많이 등장한 item을 선택할려면 most_common을 사용하자.

b.most_common(2)
[(1,2),(5,2)]

가장 많이 등장한 중에서 두번째로 작은 수와 출현 빈도를 구하라고 하면 우리는
b.most_common(2)[1][0], b.most_common(2)[0][1]과 같이 표현할 수 있다.

profile
세상은 너무나도 커

0개의 댓글