logo

[Python] 딕셔너리

 

딕셔너리란?

 

딕셔너리의 정의

딕셔너리(Dictionary)는 Python에서 사용하는 핵심 자료구조 중 하나입니다. 키(Key)와 값(Value)의 쌍으로 이루어져 있으며, 이를 항목(Item)이라고 합니다. Python에서는 중괄호 {}를 사용하여 딕셔너리를 생성하며, 각 키와 값은 콜론(:)으로 구분됩니다.

 

딕셔너리의 특징

  • 변경 가능(Mutable): 딕셔너리의 항목은 생성된 후에도 변경, 추가, 삭제가 가능합니다.
  • 순서를 유지하지 않음: Python 3.7 이전까지는 딕셔너리가 항목의 순서를 보장하지 않았으나, Python 3.7부터는 삽입된 순서를 유지합니다.
  • 키의 유일성: 각 키는 딕셔너리 내에서 유일해야 합니다. 동일한 키로 여러 값을 저장하려고 하면, 마지막 값이 이전 값을 덮어쓰게 됩니다.
  • 다양한 자료형의 키와 값: 딕셔너리의 키로는 변경 불가능(immutable)한 타입만 사용할 수 있으며, 값으로는 어떤 자료형도 사용할 수 있습니다.
 

딕셔너리와 다른 컬렉션 타입과의 차이점

  • 리스트(List)와의 차이: 리스트는 정수 인덱스를 사용하여 항목에 순차적으로 접근하지만, 딕셔너리는 키를 사용하여 직접적으로 항목에 접근합니다. 리스트는 순서가 중요한 경우에 사용되며, 딕셔너리는 키-값 쌍의 데이터를 다룰 때 사용됩니다.
  • 튜플(Tuple)과의 차이: 튜플은 변경 불가능(immutable)하며, 딕셔너리는 변경 가능(mutable)합니다. 튜플은 간단한 값의 시퀀스를 저장할 때 사용되고, 딕셔너리는 키-값 쌍의 데이터를 저장할 때 사용됩니다.
  • 세트(Set)와의 차이: 세트는 유일한 값의 집합으로, 정렬되지 않고 인덱스를 가지지 않습니다. 딕셔너리 역시 순서를 보장하지 않습니다만, 키-값 쌍의 데이터를 저장하는 점에서 차이가 있습니다.
 

예시

다음은 Python에서 딕셔너리를 생성하고 접근하는 간단한 예시입니다:

# 딕셔너리 생성
student = {'name': 'John Smith', 'age': 20, 'major': 'Computer Science'}

# 딕셔너리에 접근
print(student['name'])  # 출력: John Smith

# 딕셔너리에 항목 추가
student['graduation'] = 2022

# 딕셔너리에서 항목 삭제
del student['age']

print(student)  # 출력: {'name': 'John Smith', 'major': 'Computer Science', 'graduation': 2022}

이러한 특성과 유연성 덕분에 딕셔너리는 Python에서 매우 중요하고 유용한 자료구조입니다.


Python에서 딕셔너리는 중괄호 {}를 사용하거나 dict() 함수를 통해 생성할 수 있는 유연한 데이터 구조입니다. 각각의 항목은 키(key)와 값(value)의 쌍으로 구성되며, 각 키는 딕셔너리 내에서 유일해야 합니다. 여기서는 다양한 방법으로 딕셔너리를 생성하는 방법을 살펴보겠습니다.

 

빈 딕셔너리 생성

가장 간단한 방법은 빈 중괄호 {}를 사용하여 빈 딕셔너리를 생성하는 것입니다. 이 방법은 딕셔너리를 초기화한 후 나중에 항목을 추가할 때 유용합니다.

my_dict = {}
print(my_dict)  # 출력: {}

또 다른 방법은 dict() 함수를 사용하여 빈 딕셔너리를 생성하는 것입니다.

my_dict = dict()
print(my_dict)  # 출력: {}
 

초기값이 있는 딕셔너리 생성

딕셔너리를 생성할 때 초기값을 함께 제공할 수 있습니다. 이를 위해서는 중괄호 {} 내에 키:값 쌍을 쉼표로 구분하여 지정합니다.

employee = {'name': 'John', 'age': 30, 'department': 'Sales'}
print(employee)
# 출력: {'name': 'John', 'age': 30, 'department': 'Sales'}
 

dict() 함수를 사용한 딕셔너리 생성

dict() 함수는 키워드 인자들이나 다른 딕셔너리, 키-값 쌍을 나열하는 반복 가능 객체를 전달받아 딕셔너리를 생성할 수 있습니다.

  • 키워드 인자를 사용한 방법:
employee = dict(name='John', age=30, department='Sales')
print(employee)
# 출력: {'name': 'John', 'age': 30, 'department': 'Sales'}
  • 키-값 쌍을 나열하는 리스트 또는 튜플을 사용한 방법:
list_of_pairs = [('name', 'John'), ('age', 30), ('department', 'Sales')]
employee = dict(list_of_pairs)
print(employee)
# 출력: {'name': 'John', 'age': 30, 'department': 'Sales'}

이처럼 Python에서 딕셔너리를 생성하는 것은 간단하며, 여러가지 방법을 사용할 수 있습니다. 각 방법은 상황에 따라 서로 다른 장점을 제공하므로, 필요에 맞게 선택하여 사용할 수 있습니다.


딕셔너리에 접근하기는 Python에서 중요한 개념 중 하나입니다. 딕셔너리는 키(key)와 값(value)의 쌍으로 데이터를 저장합니다. 이 구조는 JSON 혹은 다른 프로그래밍 언어의 해시테이블과 유사합니다. 따라서, 특정한 데이터를 빠르게 찾아내기 위해 딕셔너리를 사용할 때, 이 데이터에 접근하는 방법을 잘 알고 있어야 합니다.

 

키를 사용하여 값에 접근하기

딕셔너리에 저장된 값을 검색할 때, 가장 일반적인 방법은 키를 사용하는 것입니다. 이것은 배열이나 리스트에서 인덱스를 사용하는 것과 유사하지만, 딕셔너리는 숫자 인덱스 대신에 키를 사용합니다. 키를 통해 값을 찾는 과정은 매우 효율적입니다.

예를 들어, 간단한 딕셔너리를 생성하고, 키를 사용하여 값에 접근해 봅시다:

person = {'name': 'John', 'age': 30, 'city': 'New York'}
print(person['name'])  # 출력: John
print(person['age'])   # 출력: 30

이 예제에서 'name''age'는 딕셔너리 person의 키(key)이고, 이 키들을 사용하여 각각의 값을 출력했습니다.

 

get() 메소드 사용하기

딕셔너리에서 키를 사용하여 값을 추출할 때, 존재하지 않는 키를 지정하면 Python은 KeyError를 발생시킵니다. 이를 방지하기 위해, 딕셔너리의 get() 메소드를 사용할 수 있습니다. get() 메소드는 키가 딕셔너리에 존재하지 않는 경우 None을 반환하거나, 선택적으로 지정된 기본 값을 반환할 수 있습니다.

person = {'name': 'John', 'age': 30, 'city': 'New York'}
print(person.get('name'))  # 출력: John
print(person.get('occupation', 'Unknown'))  # 출력: Unknown

이 예제에서는 'name' 키로 person 딕셔너리에 접근하여 'John'이라는 값을 불러왔습니다. 그리고 'occupation' 키에 대한 접근 시, 이 키는 person 딕셔너리에 존재하지 않으므로, get() 메소드에 제공된 기본 값 'Unknown'이 반환됩니다.

딕셔너리에 접근하는 데에 있어서 get() 메소드는 더 안전한 방법을 제공합니다. 특히, 프로그램에서 예외를 피하고 싶거나, 딕셔너리에 특정 키가 존재하는지 불확실한 경우에 유용하게 사용할 수 있습니다.


Python에서 딕셔너리는 키(key)와 값(value) 쌍으로 데이터를 저장하는 유연한 자료구조입니다. 딕셔너리는 중괄호 {}를 사용하여 표현하며, 각각의 키-값 쌍은 콜론 :으로 구분됩니다. 딕셔너리에서의 키는 고유해야 하며, 불변(immutable)한 타입이어야 합니다. 이러한 특징으로 인해 딕셔너리는 다양한 상황에서 데이터를 효율적으로 관리할 수 있습니다.

 

새로운 키-값 쌍 추가하기

딕셔너리에 새로운 키-값 쌍을 추가하는 것은 매우 간단합니다. 기존 딕셔너리에 새로운 키를 사용하여 값을 할당하기만 하면 됩니다. 만약 해당 키가 이미 딕셔너리에 존재하지 않는다면, 자동으로 새로운 키-값 쌍이 딕셔너리에 추가됩니다.

예를 들어, 우리가 fruits라는 이름의 딕셔너리를 가지고 있고, 이 딕셔너리에 'apple'이라는 키와 이에 대응하는 값 10을 추가하고자 한다면, 다음과 같이 작성할 수 있습니다:

fruits = {'banana': 5, 'orange': 3}
fruits['apple'] = 10
print(fruits) # 결과: {'banana': 5, 'orange': 3, 'apple': 10}

이런 방식으로, 기존 딕셔너리에 없는 새로운 키-값 쌍을 손쉽게 추가할 수 있습니다.

 

기존 키의 값을 수정하기

딕셔너리에서는 이미 존재하는 키에 대한 값을 수정할 수도 있습니다. 이를 위해서는 해당 키를 사용하여 새로운 값으로 할당하기만 하면 됩니다. 만약 해당 키가 딕셔너리에 존재한다면, 그 키에 대응되는 값이 새로운 값으로 업데이트됩니다.

예를 들어, 앞서 생성한 fruits 딕셔너리에서 'banana'의 값을 6으로 변경하고 싶다면 다음과 같이 할 수 있습니다:

fruits['banana'] = 6
print(fruits) # 결과: {'banana': 6, 'orange': 3, 'apple': 10}

독자들이 이해하기 쉬우시도록 예제를 통해 설명하자면, 딕셔너리에 항목을 추가하고 수정하는 것은 매우 직관적이며, 기본적인 할당 연산자(=)를 사용하여 쉽게 수행할 수 있습니다. 딕셔너리는 데이터를 관리하는 매우 유연하고 강력한 도구입니다. 딕셔너리의 이러한 속성을 활용하면, 프로그램 내에서 다양한 데이터를 효율적으로 관리하고 접근할 수 있습니다.


딕셔너리에서 항목을 삭제하는 것은 Python 프로그래밍에서 자주 사용되며 필수적인 기능 중 하나입니다. 여러가지 방법을 이용해 특정 항목을 삭제하거나 딕셔너리를 완전히 비울 수 있습니다. 여기서 우리는 세 가지 주된 방법 - del 키워드, pop() 메소드, 그리고 clear() 메소드를 사용하는 방법에 대해 알아보겠습니다.

 

항목 삭제하기: del 키워드

del 키워드를 사용하면 딕셔너리 내의 지정된 키와 그에 해당하는 값을 삭제할 수 있습니다. 만약 존재하지 않는 키를 삭제하려고 시도할 경우 KeyError가 발생합니다.

예시:

my_dict = {'이름': '김철수', '나이': 30, '직업': '개발자'}
del my_dict['나이']  # '나이' 키와 해당 값을 삭제
print(my_dict)
# 출력: {'이름': '김철수', '직업': '개발자'}
 

항목 삭제하기: pop() 메소드

pop() 메소드를 사용하면 지정된 키와 그에 해당하는 값을 삭제하고 삭제된 값을 반환합니다. 이 방법은 삭제된 값을 확인하거나 다른 변수에 저장하고자 할 때 유용합니다. 키가 딕셔너리에 존재하지 않을 경우, pop() 메소드는 선택적으로 두 번째 인수로 전달된 기본값을 반환하거나, 기본값이 제공되지 않으면 KeyError를 발생시킵니다.

예시:

my_dict = {'이름': '김철수', '나이': 30, '직업': '개발자'}
deleted_value = my_dict.pop('나이')  # '나이'를 삭제하고 해당 값을 반환
print(deleted_value)
# 출력: 30
print(my_dict)
# 출력: {'이름': '김철수', '직업': '개발자'}
 

모든 항목 삭제하기: clear() 메소드

clear() 메소드를 사용하면 딕셔너리 내의 모든 항목을 한번에 삭제할 수 있습니다. 이 메소드는 딕셔너리를 비우지만, 딕셔너리 객체 자체는 삭제하지 않습니다. 결과적으로 비어있는 딕셔너리가 됩니다.

예시:

my_dict = {'이름': '김철수', '나이': 30, '직업': '개발자'}
my_dict.clear()  # 모든 항목 삭제
print(my_dict)
# 출력: {}

이상으로 Python의 딕셔너리에서 항목을 삭제하는 세 가지 방법을 알아보았습니다. 상황에 따라 적절한 방법을 선택하여 사용할 수 있습니다.


딕셔너리는 Python에서 가장 유용한 데이터 구조 중 하나로, 키(key)값(value)의 쌍으로 데이터를 저장합니다. 여기서는 딕셔너리의 각 요소에 접근하는 다양한 방법, 특히 키와 값에 대해 자세히 살펴보겠습니다.

 

모든 키들을 리스트로 받아오기

딕셔너리의 모든 키를 리스트 형태로 얻고 싶을 때, keys() 메소드를 사용합니다. keys() 메소드는 딕셔너리의 키를 동적인 뷰로 반환합니다. 이 뷰는 딕셔너리에 변화가 생겼을 때 이를 반영하므로 항상 최신 상태의 키를 반영합니다. 하지만, 이를 직접 리스트로 변환해야 리스트로서 활용할 수 있습니다.

my_dict = {'a': 1, 'b': 2, 'c': 3}
keys = my_dict.keys()
print(keys)

# 리스트로 변환
keys_list = list(keys)
print(keys_list)
 

모든 값들을 리스트로 받아오기

values() 메소드를 사용하면 딕셔너리에 저장된 모든 값을 뷰로 반환받을 수 있습니다. 마찬가지로, 이 값들의 뷰는 딕셔너리의 변화를 실시간으로 반영합니다. 이 뷰를 리스트로 변환하려면 list() 함수를 사용해야 합니다.

values = my_dict.values()
print(values)

# 리스트로 변환
values_list = list(values)
print(values_list)
 

모든 키-값 쌍을 리스트로 받아오기

딕셔너리의 모든 키-값 쌍을 얻으려면 items() 메소드를 사용합니다. 이 메소드는 각 키-값 쌍을 튜플로 갖는 뷰를 반환합니다. 따라서, 이 메소드를 사용하면 딕셔너리 내의 데이터를 반복문 등에서 쉽게 접근할 수 있으며, 마찬가지로 리스트로 변환하여 사용할 수 있습니다.

items = my_dict.items()
print(items)

# 리스트로 변환
items_list = list(items)
print(items_list)

# 예시: 키-값 쌍을 반복문으로 접근하기
for key, value in my_dict.items():
    print(f"키: {key}, 값: {value}")

이 예제들을 통해 keys(), values(), items() 메소드를 활용함으로써 Python 딕셔너리 내의 키와 값에 쉽게 접근하고 이를 활용할 수 있음을 알 수 있습니다. 이러한 접근 방법들은 데이터 분석, 웹 개발 등 다양한 프로그래밍 상황에서 매우 유용하게 사용됩니다.

Previous
튜플
Next
세트