파이썬의 딕셔너리를 알아보자

코린이서현이·2024년 4월 28일
0

😑 들어가면서 😑

요즘 이론공부만 했더니 조금 지겹다..
할일이 있어서 공부를 하는 거지만 빨리 분량을 끝내고 코드짜는게 더 즐거울 것 같다...
오늘은 !! 알고리즘 문제를 하나만 더 풀고, 네트워크와 카테캠 강의를 듣고 프로젝트 DB 설계를 해야겠다.

파이썬의 딕셔너리

파이썬의 딕셔너리는 키/값으로 이루어진 해시테이블의 구현체이다.

파이썬의 키 : 불변 객체
파이썬의 값 : 다양한 타입

해시테이블을 통해서 자료를 저장하기 때문에 입력과 조회 모두 O(1)에 가능하다.
그러나 입력 순서를 보장해주지 않는다.

딕셔너리 메서드의 시간 복잡도

#OperationExampleClassNotes
1Stored[k] = vO(1)데이터 저장
2Lengthlen(d)O(1)길이 출력
3Deletedel d[k]O(1)요소 제거
4검색key in dO(1)요소 검색
5get/setdefaultd.get(k)O(1)key에 따른 value 확인
6Popd.pop(k)O(1)pop
7Pop itemd.popitem()O(1)랜덤하게 선택해서 pop
8Cleard.clear()O(1)similar to s = {} or = dict()
9Viewd.keys()O(1)same for d.values() / 키값 전체 가져오기
10Constructiondict(...)O(len(...))(key, value) 튜플 개수만큼
10Iterationfor k in d:O(N)전체 딕셔너리 순회

딕셔너리의 문법

딕셔너리 생성

a_dict = {}					#{}를 이용
b_dict = dict()				#타입
c_dict = {1:"1", 2:"2"}		#초기화까지 한번에

딕셔너리 접근

c_dict = {1:"1", 2:"2"}

c_dict[1] >>1
c_dict[2] >>2
#c_dict[3]     >>>> KeyError   

⚠️ 없는 값에 접근하면 KeyError이 발생한다.

키 객체 받기와 키 검색하기

⭐ 딕셔너리의 첫 번째 키 값 반환하기

 next(iter(participant_dict))
for i in c_dict.keys():
    print(i, end= " ")      #>>1 2

딕셔너리객체.key로 리턴받을 수 있다.

if 3 in c_dict:
    print("3은 존재")
else:
    print("3은 존재 X")   

키 값이 있는지 검색할 수 있다~!~!

딕셔너리 모듈

딕셔너리와 관련된 특수한 형태의 컨테이너 자료형들을 알아보자.

defaultdict 객체

  • 존재하지 않는 키를 조회할 경우, 미리 생성한 디폴트값으로 요소를 생성해준다.
#collections.defaultdict객체
default_dict = collections.defaultdict(int) #0
default_dict = collections.defaultdict(bool) #False

print(default_dict["1"])

Counter 객체

  • 아이템에 대한 개수를 계산해서 딕셔너리로 리턴한다.
  • conter객체에서 가장 빈도 수가 높은 요소는 most_commom()를 통해 얻을 수 있다.
#collections.Counter객체
a_list = [1,2,3,4,3,2,1,8,8,8,8]
a_counter = collections.Counter(a_list)

print(a_counter) #Counter({8: 4, 1: 2, 2: 2, 3: 2, 4: 1})
print(a_counter.most_common(1)) #상위부터 몇개꺼낼건지

OrderedDict 객체

  • 입력순서가 유지되는 객체이다.
    (3.7부터는 보장해주지만 이전 버전에서는 보장하지 않는다.)
#collections.OrderedDict() 객체
oder_dict = collections.OrderedDict()
oder_dict[1] = "1"
oder_dict[2] = "2"
oder_dict[3] = "3"

print(oder_dict)        #OrderedDict({1: '1', 2: '2', 3: '3'})

마무리하면서

하하 재미있다^^ 
profile
24년도까지 프로젝트 두개를 마치고 25년에는 개발 팀장을 할 수 있는 실력이 되자!

0개의 댓글