[Algorithm] Python Algorithm

[python] "코테"를 위한 기초 파이썬 (4) - Dictionary

mingyung 2024. 2. 21. 18:07

오늘은 파이썬 알고리즘 풀이에 자주 사용되는 딕셔너리 자료형에 대한 이야기를 해본다.

파이썬 기초 문법 공부를 할 때 분명히 배우고 넘어가는 영역이지만, 딕셔너리를 자유롭게 사용하기 위해서는 한번 정리를 해두고 문제풀이에 활용해보는것이 좋다.

 

Dictionaty 

딕셔너리에 대해서 한번 되짚어보자.

딕셔너리는 순차적으로 element를 얻지 않고, key-value쌍으로 이루어져 있는 자료형이다.

 

# 딕셔너리 생성
dic_1 = {} #빈 딕셔너리
dic_2 = dict()


# 선언 -> key:value
dic_3 = {'name': 'mingyung', 'age':4000, 'pet':{'type':'beta','name':'pearl','age':2}}

keys=['name','age','pet']
value = 0
dic_4 = dict.fromkeys(keys,value) #{'name': 0, 'age': 0, 'pet': 0}


# key로 value얻기
# dictionary 자료형에서 value값을 탐색하는데의 시간복잡도는 O(1)이다.
print(dic_3['name']) # mingyung

# key의 리스트 얻기
list(dic_3.keys())

# value의 리스트 얻기
list(dic_3.values())

# key-value쌍의 리스트 얻기
list(val_3.items())

#key가 존재하는지 검색
'name' in dic_3 #true

 

 

zip() 사용하기

zip함수는 여러개의 이터러블 객체를 인자로 받아서, 순서대로 튜플 형식으로 접근할 수 있도록 하는 이터레이터를 반환한다.

 

numbers = [1, 2, 3]
letters = ["A", "B", "C"]
lists=[[1],[2,3],[4,5,6]]
for pair in zip(numbers, letters,lists):
    print(pair)

#출력
#(1, 'A', [1])
#(2, 'B', [2, 3])
#(3, 'C', [4, 5, 6])

 

이 이터레이터를 딕셔너리에 다음과 같이 활용할 수 있다.

letters = ["A", "B", "C"]
lists=[[1],[2,3],[4,5,6]]
dict_1=dict(zip(letters,lists))

print(dict_1)
#{'A': [1], 'B': [2, 3], 'C': [4, 5, 6]}