본문 바로가기
STUDY/PYTHON

[Python] 5. 딕셔너리

by 짤롱 2024. 11. 10.
728x90

딕셔너리(Dictionary)

1. 딕셔너리 선언

- 딕셔너리(Dictionary) : 키를 기반으로 여러가지 자료를 저장할 수 있는 자료형

- 키(Key) : 딕셔너리 내부에서 값을 찾기 위해 사용

- 값(Value) : 딕셔너리 내부에서 키를 통해 찾을 수 있는 각각의 내용

 

1.1 기본 표현

- 중괄호({ }) 안에 '키 : 값' 형태를 쉼표(,)로 구분한 값을 나열하여 선언

- dict() 혹은 { }로 빈 딕셔너리 생성 가능

- len()함수로 요소 개수 확인 가능

- 키의 자료형으로 숫자형, 문자형, 논리형, 튜플 가능

- 키는 중복 및 변경 불가

- 값의 자료형으로 숫자형, 문자형, 논리형, 리스트, 튜플, 집합, 딕셔너리 가능

# 기본 표현
# 빈 딕셔너리 생성
my_dict1 = {}
my_dict2 = dict()

# 확인
print(my_dict1)        # {}
print(my_dict2)        # {}

# 딕셔너리 생성
my_dict3 = {"key1" : "value1", "key2" : "value2", "key3" : "value3"}

# 확인
print(my_dict3)       # {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}

# 요소 개수 확인
print(len(my_dict3))  # 3

# 다양한 자료형 키 생성 - 숫자형, 문자형, 논리형, 튜플
my_dict4 = {1 : 11, "A" : 12, True : 13, (10, 20) : 14}

# 확인
print(my_dict4)       # {1: 13, 'A': 12, (10, 20, 30): 14}

# 다양한 자료형 값 생성 - 숫자형, 문자형, 논리형, 리스트, 튜플, 집합
my_dict5 = {1 : 10, 2 : "ABC", 3 : True, 4 : [20, 30, 40], 5 : ("D", "E"), 6 : {50, 50, "F"}}

# 확인
print(my_dict5)       # {1: 10, 2: 'ABC', 3: True, 4: [20, 30, 40], 5: ('D', 'E'), 6: {50, 'F'}}

 

1.2 자료형 변환

- dict() 함수를 사용하여 다른 자료형을 딕셔너리로 변환

# 딕셔너리로 자료형 변환
# 리스트 → 딕셔너리
my_list = [["A", 65], ["B", 66], ["C", 67]]
print(dict(my_list))   # {'A': 65, 'B': 66, 'C': 67}

# 튜플 → 딕셔너리
my_tuple = (("a", 97), ("b", 98), ("C", 99))
print(dict(my_tuple))  # {'a': 97, 'b': 98, 'C': 99}

 

2. 딕셔너리 조회

- 키를 사용해 딕셔너리 안에서 값을 찾는 과정

- 대괄호 안에 키를 입력하여 원하는 값 확인

# 키로 딕셔너리 조회
# 딕셔너리 선언
my_dict = {"k1" : "v1", "k2" : "v2", "k3" : ["v3", "v13", "v23"], "k4" : "v4"}

# 확인
print(my_dict["k1"])     # v1
print(my_dict["k3"][1])  # v13

 

3. 딕셔너리 변경, 추가, 제거

3.1 딕셔너리 값 변경

- '딕셔너리[기존 키] = 수정할 값' 형태로 수정하려는 키와 값을 입력

# 딕셔너리 값 변경
# 딕셔너리 선언
my_dict = {"k1" : "v1", "k2" : "v2", "k3" : ["v3", "v13", "v23"], "k4" : "v4"}

# 값 변경
my_dict["k2"] = "v22"

# 확인
print(my_dict)  # {'k1': 'v1', 'k2': 'v22', 'k3': ['v3', 'v13', 'v23'], 'k4': 'v4'}

 

3.2 딕셔너리 값 추가

- '딕셔너리[새로운 키] = 새로운 값' 형태로 수정하려는 키와 값을 입력

- 새로운 키에 기존 키를 중복으로 입력하면 기존 키에 저장되어 있던 값 변경

# 딕셔너리 값 추가
# 딕셔너리 선언
my_dict = {"k1" : "v1", "k2" : "v2", "k3" : ["v3", "v13", "v23"], "k4" : "v4"}

# 값 추가
my_dict["k5"] = ["v5", "v15"]

# 확인
print(my_dict)  # {'k1': 'v1', 'k2': 'v2', 'k3': ['v3', 'v13', 'v23'], 'k4': 'v4', 'k5': ['v5', 'v15']}

 

3.3 딕셔너리 값 제거

- del : 딕셔너리의 특정 키를 지정하여 값 제거

- pop(x) : 특정 키 값을 지정하여 값 제거, 제거된 값을 반환

- popitem() : 키 지정 없이 마지막 값부터 제거

- clear() : 딕셔너리의 모든 값 제거

- 딕셔너리 = { } :  딕셔너리 모든 값을 제거하여 초기화 

# 딕셔너리 값 제거
# 딕셔너리 선언
my_dict = {"k1" : "v1", "k2" : "v2", "k3" : ["v3", "v13", "v23"], "k4" : "v4"}

# 확인
print(my_dict)      # {'k1': 'v1', 'k2': 'v2', 'k3': ['v3', 'v13', 'v23'], 'k4': 'v4'}

# 특정 키의 값 제거
del my_dict["k2"]

# 확인
print(my_dict)      # {'k1': 'v1', 'k3': ['v3', 'v13', 'v23'], 'k4': 'v4'}

# 특정 키의 값 제거 및 할당
del_my_dict = my_dict.pop("k4")

# 확인
print(del_my_dict)  # v4
print(my_dict)      # {'k1': 'v1', 'k3': ['v3', 'v13', 'v23']}

# 마지막 값부터 제거
my_dict.popitem()

# 확인
print(my_dict)      # {'k1': 'v1'}

# 전부 제거
my_dict.clear()

# 확인
print(my_dict)      # {}

 

4. 딕셔너리 관련 메소드

- keys() : 딕셔너리의 전체 키 확인

- values() : 딕셔너리의 전체 값 확인

- items() : 딕셔너리의 모든 키와 값 확인하여 튜플 형태로 반환

- get() : 키를 사용해 딕셔너리 안에서 값을 찾는 과정

             찾는 키가 없는 경우에 반환할 값 지정 가능

# 딕셔너리 선언
my_dict = {"k1" : "v1", "k2" : "v2", "k3" : ["v3", "v13", "v23"], "k4" : "v4"}

# 전체 키 확인
print(my_dict.keys())     # dict_keys(['k1', 'k2', 'k3', 'k4'])

# 전체 값 확인
print(my_dict.values())   # dict_values(['v1', 'v2', ['v3', 'v13', 'v23'], 'v4'])

# 전체 키와 값 확인
print(my_dict.items())    # dict_items([('k1', 'v1'), ('k2', 'v2'), ('k3', ['v3', 'v13', 'v23']), ('k4', 'v4')])

# 키로 값 확인
print(my_dict.get("k3"))  # ['v3', 'v13', 'v23']

# 키가 없는 경우 반환값 지정
value_check = my_dict.get("k5", "value not exist")
print(value_check)        # value not exist

 

자료형 의미 표현 방식 특징
리스트 순서가 있는 자료를 저장하는 컨테이너 자료형  my_list = [ ] 인덱스를 기반으로 값 저장,
중복 가능
튜플 수정이 불가능한 자료를 저장하는 컨테이너 자료형 my_tuple = ( ) 리스트와 달리 수정 불가능,
중복 가능, 인덱싱 가능
집합 중복된 값을 가지지 않는 컨테이너 자료 my_set = { } 순서가 없어 인덱싱 불가능,
중복 불가능
딕셔너리 키와 값으로 구성된 자료를 저장하는 컨테이너 자료형 my_dict = {key : value} 키를 기반으로 값 저장,
키는 중복 불가능

 

반응형

'STUDY > PYTHON' 카테고리의 다른 글

[Python] 7. 함수  (2) 2024.11.12
[Python] 6. 조건문 & 반복문  (3) 2024.11.11
[Python] 4. 튜플 & 집합  (3) 2024.11.09
[Python] 3. 리스트  (0) 2024.11.08
[Python] 2. 문자형  (0) 2024.09.21