파이썬 딕셔너리(dict) 사용법 총정리! - 생성・찾기・추가・삭제 등

2021. 6. 24. 00:36

파이썬에는 다양한 자료 구조가 있다. 딕셔너리도 파이썬 코드를 보다보면 은근히 많이 사용되는 자료형이다. 워드 클라우드나 특정 파라미터에 값을 넣어야 하는 경우 딕셔너리를 사용하는 경우를 종종 보게 된다.

오늘은 파이썬 딕셔너리 사용법에 대해서 알아보도록 하겠다.

 

 

파이썬 딕셔너리



딕셔너리는 키와 값으로 이루어진 자료형이다. 여러가지 상황에서 은근히 자주 쓰이는 자료형으로 차근차근 알아보도록 하자. 값에는 숫자나 문자 값만 가능한 것은 아니고 튜플, 리스트, 딕셔너리 등도 섞어서 사용할 수 있다.


print함수를 이용해서 딕셔너리를 조회할 수 있지만, 구조가 복잡하면 알기 어렵다는 단점이 있다. 딕셔너리를 이쁘게 조회하는 방법이 궁금하다면, 아래 포스팅을 참조해보자.
( 참조: 파이썬 리스트와 딕셔너리를 이쁘게 시각화 조회하는 방법! )

 

 

1. 딕셔너리 생성하기

딕셔너리를 생성하기 위해서는 dict함수나 중괄호 {}를 이용한다. 키와 값으로 이루어진 구조라는 것을 생각하면 정의 부분은 그리 어렵지 않다.

d = dict(a=1, b=2, c=3)

{'a'=1, 'b'=2, c='3'}

 

 

2. 딕셔너리 합치기

리스트는 +기호를 이용해서 2개의 리스틀 합칠 수 있다. 하지만, 딕셔너리에서는 조금 다른 방법을 써야 한다. 2가지 방법이 있는데, 하나는 update함수를 이용하는 것이고 다른 하나는 dict함수를 이용하는 방법이다.

딕셔너리에서는 키의 값이 중복되지 않는다. 두 방법 모두 키가 중복되는 경우, 앞의 키의 값이 뒤에 입력한 키의 값으로 변경되는 것을 유의하기 바란다.

d1 = {"a":1, "b":2}
d2 = {"b":1, "d":2}

d1.update(d2)

print(d1)

[결과]
{'a': 1, 'b': 1, 'd': 2}

 

 

d3= dict(c=3, d=4)
d4=dict(d2,**d3)

print(d4)

[결과]
{'b': 1, 'd': 4, 'c': 3}

 

 

3. 특정값 찾기

특정값을 찾기 위해서는 키를 이용한다. 리스트와 달리 인덱스는 지원하지 않는다.

d["a"]

[결과]: 1

 

 

4. 추가하기

새로운 값을 추가하려면 새로운 키와 값을 할당하면 된다.

d["d"] = 4

 

 

5. 값 변경하기

값을 변경하기 위해서는 해당 키에 값을 다시 입력해 주면 된다.

d["d"] = 5

 

 

6. 사전의 키값 얻기

딕셔너리의 키값들만 추출하려면 keys함수를 사용한다. 추출된 데이터는 dict_keys라는 자료형으로 저장된다.

d.keys()

[결과]: dict_keys(['a', 'b', 'c', 'd'])

 

 

7. 사전의 값 얻기 

값만 추출하기 위해서는 values함수를 사용한다.

d.values()

[결과]: dict_values([1, 2, 3, 5])

 

 

8. 사전의 모든 키와 값을 튜플러 묶어서 반환하기

튜플은 리스트와 유사한 읽기만 가능한 자료형이다. 소괄호로 묶어서 생성한다. 읽기만 가능해서 속도가 빠르다고 한다.

d.items()

[결과]: dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4)])

 

 

9. 특정 키값 삭제하기

del함수를 이용해서 특정 키값을 삭제할 수 있다.

del d['d]

 

 

10. 모두 삭제하기

딕셔너리의 모든 키와 값을 지우고 싶다면 clear함수를 이용하면 된다.

d.clear()



오늘은 이렇게 파이썬 딕셔너리(dict) 사용법에 대해서 알아보았다. 리스트보다는 자주 사용하지 않기 때문에 가끔 함수들이 잘 기억이 나지 않는다. 이런이런 함수들이 있다는 것만 기억하고, 파이참의 자동완성 기능을 이용하면 어렵지 않게 사용할 수 있을 듯 하다.


for문과 if문을 이용해서 딕셔너리를 생성하는 경우, 이를 한 줄로 작성하는 방법이 있다. 이를 컴프리핸션(Comprehension)이라고 하는데, 타이핑도 적고 속도도 빠른다. 코드도 간결해져 이해하기도 좋다. 코드를 작성하는 자세한 방법은 아래 포스팅을 참조해보자.
( 참조: 파이썬 딕셔너리(dictionary) for문과 if문까지 한 줄에 작성하기 )

댓글()