개요
'코드트리'에서 파이썬 딕셔너리를 공부한 내용이다
코드트리 자료가 생각보다 이해하기 정말 쉽게 되어있고, 중요한 부분을 잘 집어줘서 기록하고 두고두고 볼 예정
파이썬 딕셔너리(Python Dictionary)
파이썬 딕셔너리는 검색/삽입/삭제에 유용한 HashMap 자료구조이다.
* HashMap: (key, value) 쌍으로 이루어져 있고, 순서와 상관없이 빠른 검색/삽입/삭제(시간복잡도 O(1))가 가능한 자료구조
딕셔너리 선언
파이썬 딕셔너리는 다음과 같이 선언한다.
d1 = dict()
d2 = {}
d3 = { 'apple' : 1, 'banana' : 2, 'grape' : 3 }
key와 value
딕셔너리의 기본적인 구조는 dic_name[key] = value 이다.
key 값을 통해 value 값을 찾기 위해 print(dict_name[key])사용한다.
아래 예시를 통해 참고하자.
dic = dict()
d['A'] = 90
d['B'] = 80
if 'A' in d :
print(d['A']) # key를 통해 value 출력
dic.pop('A') # key A 와 해당 value 제거
value 값으로 key 값 찾기
for k,v in d.items() :
if i == k :
print(d[i])
if i == v :
print(k)
d.items() 메소드를 통해 key, value 쌍을 튜플 객체로 받을 수 있다. 이를 for문으로 순회하면서 해당 값을 찾아주면 된다.
하지만 이 방법은 key, value를 찾을 때마다 굳이 dictionary의 모든 부분을 방문해야 하기 때문에 효율적이지 못하다.
예제/활용
- add key value : (k,v) 쌍을 hashmap에 추가
- remove key : hashpmap에서 (k,v) 쌍 제거
- find key : key를 통해 (k,v) 쌍 찾기. 만약 key에 해당하는 key가 딕셔너리에 없다면, None 출력하기
n = int(input()) # 명령어의 개수
d = dict()
for _ in range(n):
val = input().split()
command = val[0]
if command == 'add' :
d[val[1]] = val[2]
elif command == 'find' :
if val[1] in d :
print(d[val[1]])
else:
print('None')
elif command == 'remove' :
d.pop(val[1])
기억할 것
- key, value 쌍을 찾을 때에는 dic[k] 나 if k in dic 와 같은 방법으로 찾는다.
'언어 > PYTHON' 카테고리의 다른 글
[python] 파이썬으로 진법변환하기 (0) | 2024.08.08 |
---|---|
[Python] 파이썬 lambda(익명함수) 함수로 정렬하기 (0) | 2023.01.18 |
[python] 파이썬 정렬 함수 sort와 sorted의 차이 (0) | 2023.01.09 |
[python] 파이썬 출력 tip! (0) | 2023.01.09 |
[python] 리스트에 대해서 알아보자. (0) | 2022.08.13 |