파이썬
[파이썬] 자료형 정리(딕셔너리)
2ns
2024. 2. 8. 17:24
딕셔너리 (Dictionary)
: 여러 방이 있는 하나의 큰 건물로, 각 방은 이름(Key)이 있고, 각 호실에 여러 자료(Value)들이 들어가 있다.
A = {"601호":1, "501호":3, "401호":"a", "301호":[1, 2, 3], "201호":(1, 2, 3), "101호":{1,2,3}}
1) 딕셔너리 만들기
딕셔너리는 Key와 Value로 구성되어 있다. Key는 이름이고, Value는 값이라고 생각하면 편하다.
{ } (중괄호)로 구성되어 있으며, {Key 1: Value 1, Key 2: Value 2, ...} 이런 식으로 구성된다.
A = {"name" : "손흥민", "국적" : "대한민국", "소속팀" : "토트넘"}
2) 딕셔너리 쌍 추가 및 삭제
# 딕셔너리 쌍 추가
A = {"name" : "손흥민", "국적" : "대한민국", "소속팀" : "토트넘"}
A["득점 수"] = "12골"
A
# Results: {"name" : "손흥민", "국적" : "대한민국", "소속팀" : "토트넘", "득점 수" : "12골"}
A = {"name" : "손흥민", "국적" : "대한민국", "소속팀" : "토트넘", "득점 수" : "12골"}
del A["국적"]
A
# Results: {"name" : "손흥민", "소속팀" : "토트넘", "득점 수" : "12골"}
3) 딕셔너리 Key 및 Value 가져오기
A = {"name" : "손흥민", "국적" : "대한민국", "소속팀" : "토트넘", "득점 수" : "12골"}
A["name"] # A[key]를 함으로써 해당 key에 대한 value를 불러온다.
# Results : "손흥민"
A.get["name"] # A[key] 방식과 같이 해당 key에 대한 value를 불러온다.
# Results : "손흥민"
A.keys()
# Results: dict_keys(["name", "국적", "소속팀", "득점 수"])
A.values()
# Results: dict_values(["손흥민", "대한민국", "토트넘", "12골"])
# A.keys()와 A.values()는 for문, while문에서 활용이 가능하므로 잘 알아두면 좋다.
# 예시
for i in A.keys():
print(i)
# Results:
# "name"
# "국적"
# "소속팀"
# "득점 수"
A.items()
# Results: dict_items([("name" : "손흥민"), ("국적" : "대한민국"), ("소속팀" : "토트넘"), ("득점 수" : "12골")])
주의해야 할 점은 하나의 Key 값에 여러 개의 Value가 있을 경우, 뒤의 Value만 가져와지기 때문에,
최대한 하나의 Key에 하나의 Value를 매칭시키는 것이 좋다.
또한 Key는 변할 수 없는 요소이기 때문에 Key 자리에 (변할 수 있는) 리스트는 올 수 없다.
Value는 변할 수 있으므로, 리스트, 튜플, 딕셔너리 등 모두 올 수 있다.
또한, 위에서 key에 대한 해당 value를 가져오는 것으로 두 가지 방식이 있는데, 결과를 다르게 반환한다는 차이가 있다.
# key로 value 얻기(1)
# A[key] 방식
A = {"name" : "손흥민", "국적" : "대한민국", "소속팀" : "토트넘", "득점 수" : "12골"}
A["득점왕 유무"] # A[key]를 함으로써 해당 key에 대한 value를 불러온다.
# Results : 아래와 같은 오류 반환
# Traceback (most recent call last):
# File "<stdin>", line 5, in <module>
# KeyError: '득점왕 유무'
A[key] 방식을 할 경우, 딕셔너리에 존재하지 않는 key로 value를 가져오려고 할 때, 오류가 발생한다.
반면, A.get[key] 방식은 오류가 아닌 None을 반환한다.
# key로 value 얻기(2)
# A.get(key) 방식
A = {"name" : "손흥민", "국적" : "대한민국", "소속팀" : "토트넘", "득점 수" : "12골"}
A.get("득점왕 유무")
# Results : None
또한, 딕셔너리 안에 찾으려는 key가 없는 경우에 미리 정한 특정 값을 대신 가져오게 할 수도 있다.
# key로 value 얻기(2)
# A.get(key, 설정한 값) 방식
A = {"name" : "손흥민", "국적" : "대한민국", "소속팀" : "토트넘", "득점 수" : "12골"}
A.get("득점왕 유무", "없음")
# Results : "없음"
4) 딕셔너리 관련 함수(추가)
# 특정 key가 딕셔너리 안에 있는지 조사하는 방법 - in을 쓰기
A = {"name" : "손흥민", "국적" : "대한민국", "소속팀" : "토트넘", "득점 수" : "12골"}
"name" in A
# Results : True
"득점왕 유무" in A
# Results : False
참고했던 공부자료: Do it! 점프 투 파이썬중학생도 첫날부터 실습하는 초고속 입문서
(2023.06.15 개정) https://wikidocs.net/book/1