딕셔너리란?
딕셔너리는 key와 value가 한쌍으로 들어가며 리스트와 튜플과 같이 여러 값을 저장할 수 있는 자료형이다.
리스트와 튜플은 시퀀스 자료형으로 인덱스 번호가 부여되어 인덱싱과 슬라이싱이 가능하지만 딕셔너리는 불가능하다.
딕셔너리의 기본 사용
# 빈 딕셔너리 생성하기
dict1 = {}
dict2 = dict()
print(dict1, type(dict1))
print(dict2, type(dict2))
{} <class 'dict'>
{} <class 'dict'>
그다음으로는 딕셔너리에 값을 넣어보자.
딕셔너리는 key와 value가 콤마를 통해 한 쌍으로 들어간다.
# 딕셔너리 생성
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
print(di)
{'name': '홍길동', 'age': 20, '주소': '서울특별시'}
key로 value 불러오기
딕셔너리는 인덱스 번호가 없어 인덱싱과 슬라이싱을 못하지만 key가 인덱스 번호 역할을 해 인덱싱과 비슷한 기능을 사용할 수 있다.
# key로 value에 접근
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
print(di['name'])
print(di['age'])
print(di['주소'])
홍길동
20
서울특별시
get을 사용하면 더 안전하게 key로 value를 불러올 수 있다.
대괄호를 사용하면 없는 key로 value를 불러올 시 에러가 나지만 get은 None이나 기본값을 반환한다.
# get을 사용한 key로 value 불러기기
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
print(di.get('name'))
# 없는 key로 value 불러오기
print(di.get('몸무게')) # None반환
print(di.get('몸무게', 'Unknown')) # 기본값으로 Unknown설정하여 기본값 출력
홍길동
None
Unknown
딕셔너리의 함수들
1. 딕셔너리 요소에 대한 함수들
딕셔너리를 key와 value로 이루어져 있어 key와 value에 대한 함수가 존재한다.
먼저 딕셔너리의 key를 불러오는 방법에 대해 알아보자.
# key 불러오기
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
print(di.keys())
dict_keys(['name', 'age', '주소'])
다음으로는 value를 불러오는 방법에 대해 알아보자.
# value 불러오기
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
print(di.values())
dict_values(['홍길동', 20, '서울특별시'])
다음은 items를 사용하여 key와 value를 모두 가져오는 방법이다.
# items() : key와 value를 모두 가져온다.
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
print(di.items())
dict_items([('name', '홍길동'), ('age', 20), ('주소', '서울특별시')])
key와 value 쌍의 개수를 len을 통해서 알 수 있다.
# len() : 요소의 개수 반환
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
print(len(di))
3
만약 key가 모두 숫자라면 sum을 통해 합을 알 수 있고 value의 합은 위에서 배운 values를 사용해야 한다.
# key의 합
di = {1 : 'a', 2 : 'b', 3 : 'c'}
print(sum(di))
# value의 합
di = {'a' : 1, 'b' : 2, 'c' : 3}
print(sum(di.values()))
6
6
리스트와 튜플과 마찬가지로 max와 min함수 또한 사용 가능하다.
# key의 최대값
di = {1 : 'a', 2 : 'b', 3 : 'c'}
print(max(di))
# value의 최대값
di = {'a' : 1, 'b' : 2, 'c' : 3}
print(max(di.values()))
3
3
# key의 최소값
di = {1 : 'a', 2 : 'b', 3 : 'c'}
print(min(di))
# value의 최소값
di = {'a' : 1, 'b' : 2, 'c' : 3}
print(min(di.values()))
1
1
2. 딕셔너리 추가 함수
딕셔너리는 추가, 수정이 가능하기 때문에 그에 대한 함수가 존재한다.
첫 번째는 대괄호를 사용한 방법이며 값을 추가하는 방법 중에 제일 쉽다.
이 방법은 수정에도 사용되니 알고 있는 것이 좋다.
# 대괄호를 사용하여 값 가가
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
di['몸무게'] = 70 # 대괄호 안에는 없는 key를 사용하고 =을 사용해 key에 대한 value를 할당한다.
print(di)
{'name': '홍길동', 'age': 20, '주소': '서울특별시', '몸무게': 70}
두 번째는 update함수를 사용하는 것이다.
괄호 안에는 key=value형식으로 원하는 key, value 쌍을 넣어준며 대괄호와 마찬가지로 존재하는 key를 넣으면 수정된다.
# update() : 괄호 안에 key = value 형식으로 넣어주면 값이 추가된다.
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
# 이런 식으로 update에 =을 사용하여 추가할 시에는 key가 문자열이어도 따옴표를 붙이지 않는다.
di.update(몸무게 = 60)
print(di)
# 여러 값 추가하기
di.update({'성별' : '남자', '키' : 180}) # 괄호 안에 딕셔너리 형태로 넣기
print(di)
di.update(성 = '홍', 이름 = '길동') # 괄호 안에 =을 사용하기
print(di)
{'name': '홍길동', 'age': 20, '주소': '서울특별시', '몸무게': 60}
{'name': '홍길동', 'age': 20, '주소': '서울특별시', '몸무게': 60, '성별': '남자', '키': 180}
{'name': '홍길동', 'age': 20, '주소': '서울특별시', '몸무게': 60, '성별': '남자', '키': 180, '성': '홍', '이름': '길동'}
3. 딕셔너리 삭제 함수
먼저 리스트에서도 사용되었던 pop함수이다.
괄호 안이 비어있으면 오류가 나는 것 말고는 리스트에서 하는 역할과 같으므로 설명은 생략한다.
# pop() : 삭제하고 싶은 key를 넣으면 삭제된다.
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
di.pop("name")
print(di)
{'age': 20, '주소': '서울특별시'}
del도 리스트와 동일한 역할을 하므로 예제만 보고 넘어가겠다.
# del : 대괄호 안에 삭제하고 싶은 key를 넣으면 삭제된다.
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
del di['age']
print(di)
{'name': '홍길동', '주소': '서울특별시'}
clear도 리스트와 동일하므로 예제만 보고 넘어간다.
# clear() : 모든 요소를 삭제한다.
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
di.clear()
print(di)
{}
4. 딕셔너리 수정 함수
먼저 간단히 위에서 배운 대괄호를 사용한 수정부터 알아보자.
# 대괄호를 사용한 수정
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시'}
di['name'] = '신짱구' # 추가와는 다르게 기존에 있는 key값을 넣어준다.
print(di)
{'name': '신짱구', 'age': 20, '주소': '서울특별시'}
update함수로 수정하는 방법도 알아보자.
존재하는 key를 넣어주면 수정되며 수정 방법은 아래와 같다.
# update() : 괄호 안에 key = value 형식으로 넣어주면 값이 수정된다.
di = {'name' : '홍길동', 'age' : 20, '주소' : '서울특별시', '키' : 180, '성별' : '남자'}
# 이런 식으로 update에 =을 사용하여 수정할 시에는 key가 문자열이어도 따옴표를 붙이지 않는다.
di.update(name = '신짱구')
print(di)
# 여러 값 추가하기
di.update({'age' : 30, '주소' : '경기도'}) # 괄호 안에 딕셔너리 형태로 넣기
print(di)
di.update(키 = 170, 성별 = '여자') # 괄호 안에 =을 사용하기
print(di)
{'name': '신짱구', 'age': 20, '주소': '서울특별시', '키': 180, '성별': '남자'}
{'name': '신짱구', 'age': 30, '주소': '경기도', '키': 180, '성별': '남자'}
{'name': '신짱구', 'age': 30, '주소': '경기도', '키': 170, '성별': '여자'}
'Python > Foundation' 카테고리의 다른 글
09강. [Python]조건문 (0) | 2025.02.02 |
---|---|
08강. [Python]세트 (0) | 2025.02.02 |
06강. [Python]튜플 (0) | 2025.02.01 |
05강. [Python]리스트 (0) | 2025.02.01 |
04강. [Python]연산자 (0) | 2025.01.31 |