2021. 8. 18. 18:17ㆍdev
1. 딕셔너리 쌍 추가, 삭제
딕셔너리에 key와 value를 추가하려면 딕셔너리[key] = value 와 같이 입력하면 된다.
dict = {1: 'a'}
dict[2] = 'b'
print(dict) # {1: 'a', 2: 'b'}
요소를 삭제하려면 del을 사용한다.
dict = {1: 'a', 2: 'b'}
del dict[1]
print(dict) # {2: 'b'}
2. key를 사용해 value 얻기
딕셔너리[key]를 사용해 해당 value를 얻을 수 있다. key는 고유한 값이라는 특성이 있어, 겹치지 않게 데이터를 저장하고 얻을 수 있다는 점에서 유용하다.
dict = {1: 'a', 2: 'b'}
print(dict[1]) # a
만약, 중복된 key값이 있는 경우, 하나의 key를 제외한 나머지 key들은 무시된다. 이때, 동일한 key중에서 가장 마지막에 설정된 key가 최종 key값이 된다.
dict = {1: 'a', 1: 'b'}
print(dict[1]) # b
3. key 리스트 만드는 함수, keys()
딕셔너리 함수중, keys()는 key값만 모아서 dict_keys 객체를 반환한다.
dict = {1: 'a', 2: 'b', 3: 'c'}
print(dict.keys()) # dict_keys([1, 2, 3])
print(list(dict.keys())) # [1, 2, 3]
dict_keys 라는 객체를 반환하기 때문에, 리스트만 얻고싶다면 list화 시켜주면 된다.
리스트를 쓰는것과 비슷하지만, 다음과 같이 요소들을 하나씩 얻고싶을때 유용할것같다.
dict = {1: 'a', 2: 'b', 3: 'c'}
for key in dict.keys():
print(key, end=' ') # 1 2 3
4. value 리스트 만드는 함수, values()
key 리스트와 마찬가지로, values 함수를 사용하면 value의 리스트를 구할 수 있고, 함수만 사용한다면 dict_values 객체를 반환할 것이다.
dict = {1: 'a', 2: 'b', 3: 'c'}
print(dict.values()) # dict_values(['a', 'b', 'c'])
print(list(dict.values())) # ['a', 'b', 'c']
for key in dict.values():
print(key, end=' ') # a b c
5. (key, value) 쌍을 만드는 함수, items()
items()는 key와 value 쌍을 튜플로 묶어서 dict_items 객체로 반환한다.
dict = {1: 'a', 2: 'b', 3: 'c'}
print(dict.items()) # dict_items([(1, 'a'), (2, 'b'), (3, 'c')])
print(list(dict.items())) # [(1, 'a'), (2, 'b'), (3, 'c')]
여기까지 나온 함수들은 모두 파이썬 3.0 이후로 리스트 대신에 dict_함수명 같은 객체를 돌려준다. 2.7 까지는 리스트였다고 하는데 메모리 낭비를 줄이기 위해 객체로 반환한다고 한다..!
6. key로 value 얻는 함수, get()
key를 통해서 value를 얻는건 딕셔너리[key]로 접근한다고 했는데, get 함수를 사용하는 것과 무슨 차이가 있을까.
dict = {1: 'a', 2: 'b', 3: 'c'}
print(dict.get(1)) # a
print(dict[4]) # KeyError
print(dict.get(4)) # None
이처럼 딕셔너리 내부에 존재하지 않는 key로 접근하려 할때, 기존의 딕셔너리[key] 사용법은 오류를 발생시키지만,
get 함수를 사용하면 None을 반환한다. 상황에 맞게 get 함수를 사용하면 된다.
7. key가 딕셔너리 내부에 있는지 확인
in 키워드를 사용해 해당 key가 딕셔너리 안에 존재하는지 여부를 체크할 수 있다.
dict = {1: 'a', 2: 'b', 3: 'c'}
print(1 in dict) # True
print(4 in dict) # False
출처 | https://wikidocs.net/16#_2
'dev' 카테고리의 다른 글
[프로그래머스] 튜플 Python (카카오 기출) (0) | 2021.09.07 |
---|---|
JS기초 | Ajax, JSON 개념정리 및 활용방법 (0) | 2021.08.24 |
[프로그래머스] 오픈채팅방 (Python) (0) | 2021.08.13 |
[프로그래머스] 나머지 한 점 (Python) (0) | 2021.06.24 |
VS Code 단축키 모음 (0) | 2021.06.05 |