프로그래밍/Python

[파이썬 독학] 7. 딕셔너리(Dictionary)란?

Beginner:) 2022. 8. 19.
320x100

2022.07.08 - [프로그래밍/Python] - [파이썬 독학]6. 튜플(튜플과 리스트 차이)

 

[파이썬 독학]6. 튜플(튜플과 리스트 차이)

2022.07.07 - [프로그래밍/Python] - [파이썬 독학] 5. 변수와 리스트(feat 이중리스트) [파이썬 독학] 5. 변수와 리스트(feat 이중리스트) 2022.07.04 - [프로그래밍/Python] - [Python 독학] 4. 변수&연산 [Pyth..

park-duck.tistory.com

 

다른 언어를 좀 하다 오면 딕셔너리가 json이랑 비슷하다 생각할 텐데 json이랑 동일하다 보면 된다.

 

다만 python에는 json이 없다. json 라이브러리를 사용하더라도 type을 보면 dict이 찍힌다.

 

즉 이름만 다를 뿐 같은 데이터형태인 것이다 (뇌피셜)

import json
data = '{"a":1}'
temp = json.loads(data)
print(type(temp))
print(temp)

# <class 'dict'>
# {'a': 1}

json을 안다면 넘어가도 되고 모른다면 딕셔너리에 대해 배워보자 :D

 


 

딕셔너리는 사전적 의미가 사전이다. 

사과라는 단어의 뜻을 알고싶으면 

사전에서 사과를 찾아 사과의 뜻을 찾는데

이때 사과가 key, 사과의 뜻을 value라 한다.

 

다른 예를 들어보면 흔히 보는 회원가입 창에서

ID : park-duck

PW : root1234

라고 입력을 하여 딕셔너리에 저장을 하게 되고 유저의 ID를 알고 싶으면 딕셔너리의 ID를 찾아 park-duck이란 값을 얻게 된다.

 

이때 ID가 key, park-duck이 value가 된다.

 

key와 value의 형태는 아래와 같다.

{Key1:Value1, Key2:Value2, Key3:Value3, ...}

 

이제 회원가입 예제를 파이썬 코드로 실행해본다.

form = {"ID":"park-duck", "PW":"root1234"}
print(form["ID"])
print(form["PW"])

# park-duck
# root1234

 

딕셔너리에 key, value를 추가하는 방법은 아래와 같은 형식이다.

딕셔너리변수[key] = value

 

딕셔너리 데이터 쌍 추가 예제이다.

form = {"ID":"park-duck", "PW":"root1234"}
form["name"] = "duck"
form["age"] = 90
form["hobby"] = ["A", "B", "C"]
form["temp"] = {1:"a", 2:"b", 3:"c"}

print(form)

#{'ID': 'park-duck', 'PW': 'root1234', 'name': 'duck', 'age': 90, 'hobby': ['A', 'B', 'C'], 'temp': {1: 'a', 2: 'b', 3: 'c'}}

 

딕셔너리 삭제 형태는 아래와 같다

del 딕셔너리변수[key]

 

딕셔너리 요소 삭제 예제이다

form = {"ID":"park-duck", "PW":"root1234"}
form["name"] = "duck"
form["age"] = 90
form["hobby"] = ["A", "B", "C"]
form["temp"] = {1:"a", 2:"b", 3:"c"}

del form["hobby"]
print(form)

#{'ID': 'park-duck', 'PW': 'root1234', 'name': 'duck', 'age': 90, 'temp': {1: 'a', 2: 'b', 3: 'c'}}

 

딕셔너리 key와 value 쌍을 얻는 함수는 items()이다.

딕셔너리의 key들을 얻는 함수는 keys()이다

딕셔너리의 value들을 얻는 함수는 values()이다

딕셔너리의 key값으로 value를 얻는 함수는 get()이다

딕셔너리의 value값으로 key값을 얻는 함수는 없다. 반복문을 돌려서 찾아야 한다.

딕셔너리의 모든 값을 삭제하는 방법은 clear()이다.

 

위의 예제들을 한꺼번에 출력해보자 

form = {"ID":"park-duck", "PW":"root1234"}
form["name"] = "duck"
form["age"] = 90

print(form.items()) # dict_items([('ID', 'park-duck'), ('PW', 'root1234'), ('name', 'duck'), ('age', 90)])
print(form.keys()) # dict_keys(['ID', 'PW', 'name', 'age'])
print(form.values()) # dict_values(['park-duck', 'root1234', 'duck', 90])
print(form.get("age")) # 90
value = None

for k in form.keys():
    if form[k] == "duck":
        value = k
#print([k for k, v in form.items() if v == 'duck'])

print(value) # name
form.clear()
print(form) # {}

 

반응형

댓글