티스토리 뷰
Method 파트의 끝이 보인다. 평소에 보던 리스트나 튜블과 다르게 특이한 방식으로 데이터가 들어가있다. 자주 쓰이는 친구는 아니지만, 알고 있어야만 쉽게 풀 수 있는 알고리즘 문제들도 있고, 실제로 api로 클론 코딩을 진행할 때 javascript 등을 까보면 dictionary 형식으로 데이터가 저장되어 있기 때문에 문제에서 중요도가 낮아도 현업에서는 중요도가 높다는 것을 느끼고 있다. 지금까지 나왔던 데이터들의 method를 모두 외우진 못했지만 문제를 풀다보면 외워지지 않을까 싶다.
딕셔너리 Method
: 고유한 항목들의 정렬되지 않은 컬렉션이다. 이전 시간에 그림까지 열심히 그려가며 다루었기 때문에 혹시나 기억이 나지 않는다면 https://codinglarva.tistory.com/14에서 확인 가능하니 정독하고 오자!
귀찮은 사람들을 위해 특징들을 나열하자면 {Key - Value} 의 형태를 가지고 있으며 Key는 immutable(불변) 자료만 올 수 있다(Value는 무상관). 또, 딕셔너리는 Non-Sequence 자료이다.
Method | 설명 |
D.clear() | 딕셔너리의 키/값 데이터를 모두 제거한다 (clear 메서드는 항상 있는것 같지만 언제 쓸까..?) |
D.get(key) | 키에 연결된 값을 반환한다(키가 없다면 None 반환) |
D.get(key, value) | 키에 연결된 값을 반환하거나 키가 없으면 기본값으로 설정한 value를 반환한다 |
D.keys() | 딕셔너리의 키를 모은 데이터를 반환한다 |
D.values() | 딕셔너리의 값을 모은 데이터를 반환한다 |
D.items() | 딕셔너리의 키, 값 쌍을 모은 데이터를 반환한다 |
D.pop(key) | 딕셔너리에서 키를 제거하고 연결 되어있던 값을 반환한다(없다면 오류출력) |
D.pop(key, value) | 딕셔너리에서 키를 제거하고 연결 되어있던 값을 반환한다(없다면 설정한 value를 반환) |
D.setdefault(key) | 딕셔너리에서 키와 연결되어있는 값을 반환한다 |
D.setdefault(key, value) | 딕셔너리에서 키와 연결되어있는 값을 반환한다 가 딕셔너리에 들어있지 않다면 key-value 데이터를 딕셔너리에 추가 후 value를 반환한다 |
D.update(other) | other의 데이터를 딕셔너리에 갱신한다. [1] other가 딕셔너리 일때 기존 딕셔너리에 정보를 추가 혹은 덮어쓴다 [2] other가 key = value 형식으로 주어지면 내부 데이터를 추가 혹은 덮어쓴다 |
# 딕셔너리의 데이터를 모두 제거한다
# D.clear()
info = {'name':'hyo', 'age':29, 'home':'seoul'}
result = info.clear()
print(info) # {} 내부 데이터가 모두 사라진 것을 볼 수 있다
print(result) # None 반환값은 없다
# 키와 연결된 값을 반환하고, 만약 키가 없다면 None을 반환한다
# D.get(key)
info = {'name':'hyo', '나이':29, 29 :'늙음'}
print(info.get('name')) # hyo key에 해당하는 value 출력
print(info.get('나이')) # 29 한글 key 도 가능
print(info.get(29)) # 늙음 정수 key 도 가능
print(info.get('몸무게')) # None 키가 없으면 None 출력
# 리턴값을 None이 아닌 다른 출력으로 컨트롤 하고싶다면?
# D.get(key,value)
info = {'name':'hyo', '나이':29, 29 :'늙음'}
print(info.get('몸무게', '없음')) # 없음 '몸무게' 라는 key 가 딕셔너리에 없기 때문에
print(info) # {'name': 'hyo', '나이': 29, 29: '늙음'} 원본 데이터에는 변함 없다
# 딕셔너리의 키 데이터를 모두 반환
# D.keys()
info = {'name':'hyo', '나이':29, 29 :'늙음'}
print(info.keys()) # dict_keys(['name', '나이', 29])
for i in info.keys(): # 반복문을 통해 출력 가능
print(i)
'''출력
name
나이
29
'''
# 딕셔너리의 값 데이터를 모두 반환
# D.values()
info = {'name':'hyo', '나이':29, 29 :'늙음'}
print(info.values()) # dict_values(['hyo', 29, '늙음'])
for i in info.values(): # 반복문을 통해 출력 가능
print(i)
'''출력
hyo
29
늙음
'''
# 딕셔너리의 키와 값 데이터를 모두 반환
# D.items()
info = {'name':'hyo', '나이':29, 29 :'늙음'}
print(info.items()) # dict_items([('name', 'hyo'), ('나이', 29), (29, '늙음')])
for i in info.items(): # 특이한 점은 items 메서드는 리스트로 크게 묶고 한번 더 튜플로 묶었다
print(i)
print(type(i)) # 데이터 타입 확인
'''
('name', 'hyo')
<class 'tuple'>
('나이', 29)
<class 'tuple'>
(29, '늙음')
<class 'tuple'>
'''
for x, y in info.items(): # 해당 방식으로 2차원 배열처럼 출력할 수 있다.
print(x, y)
'''
나이 29
29 늙음
'''
# 키 데이터를 제거하고 연결되어있던 값을 반환한다. 만약 없다면 Error
# D.pop(key[,default])
info = {'name':'hyo', '나이':29, 29 :'늙음'}
print(info.pop(29)) # 늙음 리스트에서 쓰는 pop과 동일하다
print(info) # {'name': 'hyo', '나이': 29} 29 : '늙음' 데이터가 pop됨
print(info.pop('country', 'No')) # No 없는 키 데이터를 pop할 시 default 값 No를 반환한 것
# print(info.pop('country')) # KeyError: 'country' default를 설정하지 않는다면 Error
# 키와 연결된 값을 반환. 키가 없다면 key-default 데이터를 딕셔너리에 추가하고 default 반환
# D.setdefault(key[,default])
info = {'name':'hyo', '나이':29, 29 :'늙음'}
print(info.setdefault('country', 'Korea')) # Korea ':' 또는 '='가 아닌 ','가 들어가니 조심
print(info) # {'name': 'hyo', '나이': 29, 29: '늙음', 'country': 'Korea'} 데이터가 추가됨
# other에서 제공하는 키-값 데이터를 기존 딕셔너리에 갱신한다. 기존의 키가 있다면 덮어쓴다
# D.update([other])
info = {}
my_info = {'name':'Jin', 'age':28, 'class_num':'1반'}
info.update(my_info)
print(info) # {'name': 'Jin', 'age': 28, 'class_num': '1반'}
info.update(age = 29,class_num = '3반') # 추가할 때 형식을 잘 기억해야한다.
print(info) # {'name': 'Jin', 'age': 29, 'class_num': '3반'} age와 class_num의 값 업데이트
info.update(gender = 'male') # 없는 데이터는 그대로 추가된다.
print(info) # {'name': 'Jin', 'age': 29, 'class_num': '3반', 'gender': 'male'}
개인적으로 중요하다 생각된 것은 간단한 메서드인 keys()와 values()라고 생각하고, 나중에 응용할 일이 많다면 나머지도 반드시 사용되는 메서드임은 틀림 없는 것 같다. 여기까지 배웠다면, 기초적인 알고리즘 문제들은 모두 해결 가능할 것이다.
재료를 모았고 손질할 도구들을 샀으니 이제 요리하면 된다!! 알고리즘 풀러 가보자고~
728x90
'일상코딩 > 노트' 카테고리의 다른 글
Python : 1차원 배열 (정렬[Bubble Sort, Counting Sort]) (0) | 2024.01.30 |
---|---|
Python Functions(2) [재귀함수, 유용한 내장함수] (0) | 2024.01.27 |
Python Method (세트 Method) (0) | 2024.01.24 |
Python Method (리스트 Method) (0) | 2024.01.23 |
Python Method (문자열 Method) (0) | 2024.01.22 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- baby-gin
- Method
- vue
- Authentication System
- app
- 백준
- vue3
- dfs
- Python
- CodeTree
- 순열
- honeymoney
- SQL
- views.py
- 재귀
- refactoring
- 함수
- HTML
- Django
- 카운팅정렬
- ChatGPT
- Sequence types
- Database
- basic syntax
- 삼성청년SW아카데미
- SQLite
- ssafy
- Component
- JavaScript
- 연산자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함