Python

[Python] 파이썬 딕셔너리 개념 정리

소혜아빠 2021. 1. 17. 08:19

IPM의 코딩 공부


1. 딕셔너리 선언

딕셔너리는 중괄호 { }로 선언하며 '키:값'의 형태를 쉼표(,)로 연결해서 만듭니다. 키는 문자열, 숫자, 불 등으로 선언할 수 있습니다.

변수 = {
	키:값,
    키:값,
    ...
    키:값
}

 

2. 딕셔너리 요소에 접근

딕셔너리 요소에 접근할 때에는 리스트처럼 딕셔너리 뒤에 대괄호 []를 사용하고 대괄호 안에는 내부 인덱스를 넣듯이 '키'를 입력해주면 됩니다. 딕셔너리는 선언할 때에는 중괄호{}로 선언하지만 요소에 접근할 때에는 대괄호[]를 사용하는 점은 유념해야합니다.

# print(dictionary_a["name"])
# print(dictionary_a["gender"])

# 딕셔너리를 선언합니다.
dictionary = {
    "name" : "홍길동",
    "gender" : "",
    "ability" : ["축구", "공부", "연설", "원활한인간관계"],
    "nation" : "한국",
}

print("name : {}".format(dictionary["name"]))
print("gender : {}".format(dictionary["gender"]))
print("ability : {}".format(dictionary["ability"]))
print("nation : {}".format(dictionary["nation"]))
print()

# 값 변경
dictionary["name"] = "각시탈"
print("name : {}".format(dictionary["name"]))

# 값이 리스트일 때는 리스트 안의 특정값을 접근해서 출력할 수도 있습니다.
print("ability {} : {}".format(0, dictionary["ability"][0]))
print("ability {} : {}".format(1, dictionary["ability"][1]))
print("ability {} : {}".format(2, dictionary["ability"][2]))
print("ability {} : {}".format(3, dictionary["ability"][3]))

 

3. 딕셔너리에 값 추가하기

딕셔너리에 새로운 값을 추가할 때는 키를 기반으로 값을 입력해주기만 하면 됩니다.

딕셔너리[새로운 키] = 새로운 값

아래와 같이 빈 딕셔너리에 새로운 키에 새로운 값을 넣어주면 값이 입력되는 것을 볼 수 있습니다.

# 빈 딕셔너리
dictionnary = {}

print("요소 추가하기 전 : {}".format(dictionnary))

# 요소 추가
dictionnary["name"] = "새로운 이름"
dictionnary["head"] = "새로운 정신"
dictionnary["body"] = "새로운 육체"

print("요소 추가한 후: {} ".format(dictionnary))

 

4. 딕셔너리에 값 제거하기

딕셔너리를 제거하는 방법은 리스트에서 요소를 제거할 때 사용했었던 del을 사용하여 제거할 수 있습니다.

del 딕셔너리[제거할 키]

아래처럼 del을 통해 딕셔너리 내에 존재하는 값을 지울 수 있습니다.

# 딕셔너리 선언
dictionary = {
    "name" : "홍길동",
    "gender" : "남성"
}

print("요소 제거하기 전 : {}".format(dictionary))

# 딕셔너리 요소 제거하기 : 제거하고싶은 키를 인덱스에 넣고 del을 쓰면됨. 
del dictionary["name"]
del dictionary["gender"]

print("요소 제거 후 : {}".format(dictionary))

 

5. 딕셔너리 내부에 키가 있는지 확인

리스트 내부에 값이 있는지 없는지 확인할 때 in 키워드를 사용했던 것처럼 딕셔너리 내부에 키가 있는지 없는지 확인하는 것도 in 키워드를 사용합니다. 아래의 예시처럼 '키'를 입력했을 때 입력한 '키'가 딕셔너리 내부에 있는지 없는지를 in 연산자로 확인할 수 있습니다.

# in 키워드

dictionary = {
    "name" : "홍길동",
    "gender" : "",
    "ability" : ["축구", "공부", "연설", "원활한인간관계"],
    "nation" : "한국",
}

key = input("> 접근 하고자 하는 키 : ")

# 딕셔너리 변수 dictionary안에 입력한 값이 있는지 확인.
if key in dictionary:
    print(dictionary[key])
else:
    print("존재하지않는 키에 접근하고 있습니다.")

6. get()함수

존재하지 않는 키에 접근하는 상황에서 또 다른 방법은 get()함수를 사용하는 것입니다. get()함수는 딕셔너리의 키로 값을 추출하는 기능으로 "딕셔너리[키]"를 입력할 때와 같은 기능을 수행하지만 키가 존재하지 않을 때는 KeyError를 발생시키지 않고 None을 출력합니다.

dictionary = {
    "name" : "홍길동",
    "gender" : "",
    "ability" : ["축구", "공부", "연설", "원활한인간관계"],
    "nation" : "한국",
}

value = dictionary.get("존재하지 않는 키")
print("값 : {}".format(value))

if value == None:
    print("존재하지 않는 키에 접근")
else:
    pass

 

7. for 반복문에 딕셔너리와 함께 사용하기

for 반복문과 딕셔너리 조합하는 방법은 아래와 같은 조합으로 사용이 가능합니다. 여기서 주의할 점은 딕셔너리 내부에 있는 키가 변수에 들어간다는 점입니다.

for 키 변수 in 딕셔너리:
	코드...

코드 자체는 어렵지 않으나, for문에서 딕셔너리를 사용할 때에는 키를 나타내므로, 키와 값을 어떻게 출력하느냐를 유념해야 합니다.

dictionary = {
    "name" : "홍길동",
    "gender" : "",
    "ability" : ["축구", "공부", "연설", "원활한인간관계"],
    "nation" : "한국",
}


for key in dictionary:
    print("key : {}".format(key))
    print("value : {}\n".format(dictionary[key]))