본문 바로가기
GD's IT Lectures : 기초부터 시리즈/파이썬(Python) 기초부터 ~

[파이썬(PYTHON)] 기본적인 자료구조 - 딕셔너리

by GDNGY 2023. 5. 3.

6.3. 딕셔너리

딕셔너리(dictionary)는 파이썬의 매우 유용한 자료구조입니다. 딕셔너리는 키(key)와 값(value) 쌍으로 이루어진 데이터를 저장하고 관리하는 데 사용됩니다. 딕셔너리는 키를 기반으로 값을 빠르게 검색할 수 있어서, 데이터베이스에서 정보를 가져오거나 구성 설정을 저장하는 등의 상황에서 효과적으로 사용할 수 있습니다. JSON과 같은 형식과 비슷하기 때문에 웹 개발에서도 널리 사용됩니다.

 

6.3.1. 딕셔너리 생성과 값 접근

딕셔너리를 생성하려면 중괄호 {}를 사용하고, 키와 값을 콜론(:)으로 구분합니다. 키는 딕셔너리에서 고유한 값이어야 하며, 중복될 수 없습니다. 값은 키에 연결되어 저장되는 데이터입니다. 딕셔너리의 값에 접근하려면 대괄호 [] 안에 키를 입력하면 됩니다.

 

# 딕셔너리 생성
person = {
    'name': 'John',
    'age': 25,
    'city': 'New York',
    'country': 'USA',
    'email': 'john@example.com',
    'phone': '123-456-7890'
}

# 값 접근
print(person['name'])        # John
print(person['age'])         # 25
print(person['city'])        # New York
print(person['country'])     # USA
print(person['email'])       # john@example.com
print(person['phone'])       # 123-456-7890

 

키가 존재하지 않는 경우, 딕셔너리에 접근하면 KeyError가 발생합니다. 이를 방지하려면 in 연산자를 사용하여 키의 존재 여부를 확인하거나, get() 메서드를 사용하여 기본값을 지정할 수 있습니다.

 

# 키 존재 여부 확인
if 'address' in person:
    print(person['address'])
else:
    print('Address not found.')

# get() 메소드 사용
print(person.get('address', 'Not available'))  # Not available

 

6.3.2. 딕셔너리 메소드

딕셔너리는 데이터를 처리하고 관리하기 위한 다양한 메서드를 제공합니다. 다음은 주요 메소드 몇 가지를 살펴보겠습니다.

 

  • keys() : 딕셔너리의 모든 키를 반환합니다. 반환된 값은 리스트와 유사한 형태이지만, 실제로는 dict_keys 객체입니다. 필요에 따라 list() 함수를 사용하여 리스트로 변환할 수 있습니다.
keys = person.keys()
print(keys)  # dict_keys(['name', 'age', 'city', 'country', 'email', 'phone'])

#dict_keys 객체를 리스트로 변환
keys_list = list(keys)
print(keys_list) # ['name', 'age', 'city', 'country', 'email', 'phone']

 

  • values() : 딕셔너리의 모든 값을 반환합니다. 반환된 값은 리스트와 유사한 형태이지만, 실제로는 `dict_values` 객체입니다. 필요에 따라 `list()` 함수를 사용하여 리스트로 변환할 수 있습니다.
values = person.values()
print(values)  # dict_values(['John', 25, 'New York', 'USA', 'john@example.com', '123-456-7890'])

# dict_values 객체를 리스트로 변환
values_list = list(values)
print(values_list)  # ['John', 25, 'New York', 'USA', 'john@example.com', '123-456-7890']

 

  • items() : 딕셔너리의 모든 키-값 쌍을 반환합니다. 반환된 값은 튜플의 리스트와 유사한 형태이지만, 실제로는 dict_items 객체입니다. 필요에 따라 list() 함수를 사용하여 리스트로 변환할 수 있습니다.
items = person.items()
print(items)  # dict_items([('name', 'John'), ('age', 25), ('city', 'New York'), ('country', 'USA'), ('email', 'john@example.com'), ('phone', '123-456-7890')])

# dict_items 객체를 리스트로 변환
items_list = list(items)
print(items_list)  # [('name', 'John'), ('age', 25), ('city', 'New York'), ('country', 'USA'), ('email', 'john@example.com'), ('phone', '123-456-7890')]

 

  • update() : 딕셔너리에 새로운 키-값 쌍을 추가하거나 기존 키의 값을 변경합니다. 인자로 다른 딕셔너리를 전달하여 병합할 수 있습니다.
person.update({'language': 'English', 'age': 26})
print(person)  # {'name': 'John', 'age': 26, 'city': 'New York', 'country': 'USA', 'email': 'john@example.com', 'phone': '123-456-7890', 'language': 'English'}

 

  • pop() : 딕셔너리에서 지정한 키와 연관된 값을 제거하고 반환합니다. 키가 없는 경우 기본값을 반환하거나, 기본값이 지정되지 않았다면 KeyError를 발생시킵니다.
removed_age = person.pop('age')
print(removed_age)  # 26
print(person)  # {'name': 'John', 'city': 'New York', 'country': 'USA', 'email': 'john@example.com', 'phone': '123-456-7890', 'language': 'English'}

# 키가 없는 경우 KeyError 발생
# person.pop('age')  # KeyError

# 키가 없는 경우 기본값 반환
removed_age = person.pop('age', 'Not available')
print(removed_age) # Not available

 

  • popitem() : 딕셔너리에서 임의의 키-값 쌍을 제거하고 반환합니다. 딕셔너리가 비어있는 경우 KeyError를 발생시킵니다.
removed_item = person.popitem()
print(removed_item)  # ('language', 'English')
print(person)  # {'name': 'John', 'city': 'New York', 'country': 'USA', 'email': 'john@example.com', 'phone': '123-456-7890'}

 

  • clear() : 딕셔너리의 모든 키-값 쌍을 제거합니다.
person.clear()
print(person)  # {}

 

  • copy() : 딕셔너리의 얕은 복사본을 반환합니다. 원본 딕셔너리와 복사본은 서로 독립적입니다.
original = {'name': 'John', 'age': 26, 'city': 'New York'}
copied = original.copy()

print(copied)  # {'name': 'John', 'age': 26, 'city': 'New York'}

# 원본 딕셔너리와 복사본은 독립적입니다.
copied['age'] = 27
print(original)  # {'name': 'John', 'age': 26, 'city': 'New York'}
print(copied)    # {'name': 'John', 'age': 27, 'city': 'New York'}

 

이 외에도 파이썬 딕셔너리는 다양한 기능을 제공하며, 데이터를 처리하고 관리하는 데 매우 유용합니다. 이를 활용하여 필요한 데이터를 쉽게 찾고 저장할 수 있으며, 코드를 간결하고 직관적으로 작성할 수 있습니다. 딕셔너리를 사용하여 데이터를 관리하는 기술은 파이썬 프로그래밍의 기본이자 필수적인 요소입니다. 딕셔너리를 이해하고 활용하면 파이썬 프로그래밍 능력을 크게 향상할 수 있습니다.

 

 

2023.05.03 - [프로그래밍/파이썬(Python) 기초부터 ~] - [파이썬(PYTHON)] 기본적인 자료구조 - 튜플

 

[파이썬(PYTHON)] 기본적인 자료구조 - 튜플

6.2. 튜플 튜플은 리스트와 유사한 자료구조이지만, 한 번 생성된 요소를 변경할 수 없는 불변(immutable) 자료구조입니다. 튜플은 소괄호(())를 사용하여 생성하며, 각 요소는 쉼표(,)로 구분합니다.

gdngy.tistory.com

 

 

 

 

반응형

댓글