나의 공부 일기

Python) 딕셔너리(Dictionary) 본문

파이썬/Collection

Python) 딕셔너리(Dictionary)

곽병권 2023. 10. 16. 15:32
728x90

Collection 자료구조 중 세번째인 딕셔너리(Dictionary)에 대해 정리해보겠습니다.

 

딕셔너리는 앞서 정리한 리스트와 튜플과는 약간 다릅니다.

 

리스트와 튜플은 요소들을 저장해 놓은것이지만

 

딕셔너리는 키값, 벨류값이 나뉘어져 들어갑니다.

딕셔너리의 형태는 {} 안의 순서대로 key값:value값 이런 형식으로 들어가있습니다.

딕셔너리의 키값:value값 을 합쳐 item 이라고 부릅니다.

 

딕셔너리 = {'a' : 1} 이렇게 a 가 1이다 라는걸 저장하여 보여줄 수 있죠

 

딕셔너리 생성방법으로는

  • 딕셔너리 = {key1:value1, key2:value2....}
  • 딕셔너리 = {}
  • 딕셔너리 = dict() 

이렇게 기본적으로 3가지가 있습니다.

 

 

 

딕셔너리에도 추가하거나 값을 반환받거나 삭제하거나 하는 함수들은 다음과 같습니다.

 

 

.get()

()안의 키값에 해당하는 벨류값을 나타내고 벨류값을 넣으면 정확한 값이 나오지 않습니다.

dic1 = {1:'A'}
print(dic1.get(1))
print(dic1.get('A'))
 
---결과---
A
None

값이 없을때 반환하는 값도 지정할 수 있습니다.

dic1 = {1:'A'}
print(dic1.get('A','없음'))

---결과---
없음

 

 

 __setitem__() 

값을 추가하는 함수입니다.

()안에는 키값,벨류값 을 넣어줘야합니다. __setitem__(키값,벨류값) 이런식으로 말이죠

키값만 넣거가 벨류값만 넣는다면 오류가 발생합니다.

TypeError:  expected 2 arguments, got 1

 

 

dic1 = {1:'A'}

dic1.__setitem__(3,'C')
print(dic1)
 
---결과---
{1: 'A', 3: 'C'}

이런식으로 사용됩니다.

 

 

 

dict[키값] = 벨류값

이렇게도 값을 추가 할 수 있습니다. 

 

__setitem__(키값,벨류값) 이렇게 사용하듯이 dict[키값] = 벨류값 이렇게 사용하면 똑같이 값이 추가되게 됩니다.

출력도 마찬가지로 위에서 사용했던.get() 처럼 dict[키값] 을 하면 그 키값에 해당하는 벨류값이 나오게 됩니다.

dic1 = {1:'A'}
dic1[2] = 'B'
print(dic1)
print(dic1[2])

---결과---
{1: 'A', 2: 'B'}
B

 

 

__delitem__()

지우는 함수입니다.

__delitem__()이 괄호 안에 키값을 넣으면 그 킥값에 해당하는 벨류값과 키값이 지워지게됩니다.

같은 방법으로 del dic1[] 이렇게도 사용이 가능합니다 [] 안의 키값에 해당하는 키,벨류값 모두 지워지게 됩니다.

 

dic1 = {1:'A',2:'B',3:'C'}
print(dic1)

del dic1[1]
print(dic1)

dic1.__delitem__(2)
print(dic1)
---결과---
{1: 'A', 2: 'B', 3: 'C'}
{2: 'B', 3: 'C'}
{3: 'C'}

결과의 순서는 프린트 순서대로 입니다.

 


키값 모두를 나타내는 함수와 벨류값 모두를 나타내는 함수도 있습니다.

.keys()와 .values() 입니다.

 

위에 예제에서 사용한 dic1에서  dic1.keys()를 하면 dic1의 모든 키값 [1,2,3]이 이런 형식으로 나타납니다.

dic1 = {1:'A',2:'B',3:'C'}
print(dic1.keys())
 
---결과---
dict_keys([1, 2, 3])

values()도 똑같이 dic1.values()를 한다면 dic1의 모든 value 값들을 반환합니다.

dic1 = {1:'A',2:'B',3:'C'}
print(dic1.values())
 
# ---결과---
dict_values(['A', 'B', 'C'])

 

.items()를 하면 딕셔너리를 출력합니다.

dic1 = {1:'A',2:'B',3:'C'}
print(dic1.items())
# ---결과---
dict_items([(1, 'A'), (2, 'B'), (3, 'C')])

 

 

 

이 아이템을 이용하여 for문을 활용하여 한번에 깔끔하게 출력도 가능합니다.

dic1 = {1:'A',2:'B',3:'C'}

for key,value in dic1.items():
    print(f'key : {key}  value: {value}')

# ---결과---
key : 1  value: A
key : 2  value: B
key : 3  value: C

 

 

마지막으로 해당 키값이 딕셔너리에 있나 확인하는 in 함수도 있습니다.

형식은 "키값 in 딕셔너리" 입니다.

있으면 True 없으면 False로 반환해줍니다.

dic1 = {1:'A'}
result = 1 in dic1
print(result)
 
#---결과---
True

 

 

 

 

 


여기까지 딕셔너리에 대해 정리해보았습니다.

 

728x90

'파이썬 > Collection' 카테고리의 다른 글

Python) 셋(Set)  (0) 2023.10.17
Python) 튜플(tuple)  (0) 2023.10.16
Python) 리스트(list) 2/2  (0) 2023.10.16
Python) 리스트(list) 1/2  (0) 2023.10.16