Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 딕셔너리 사용 시 흔히 저지르는 실수와 올바른 활용법

파이썬(Python)의 딕셔너리(Dictionary)는 키(Key)와 값(Value)을 쌍으로 묶어 저장하는 대표적인 자료구조입니다. 가장 자주 사용되는 자료구조 중 하나로, 다양한 유용한 특성을 가지고 있습니다. 딕셔너리는 아래와 같이 중괄호 {}로 감싸서 표현합니다.

dict = {'day1':'Mon' ,'day2':'Tue','day3':'Wed'}

딕셔너리의 각 요소(키-값 쌍)는 작은따옴표로 표현되며, 키와 값은 콜론(:)으로 구분됩니다.

딕셔너리 생성하기

딕셔너리는 키-값 형태로 값을 나열하여 변수에 할당하는 방식으로 생성합니다.

예제

Dict1 = {'day1':'Mon' ,'day2':'Tue','day3':'Wed'}
print(type(dict1))
print(dict1)

# dict() 메서드 활용
dict2 =dict({('day1','Mon'),('day2','Tue'),('day3','Wed')})
print(type(dict2))
print(dict2)

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

{'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}

딕셔너리 값 접근하기

딕셔너리의 요소에 접근하려면 대괄호 [] 안에 키를 넣어 해당 값을 얻을 수 있습니다. 또한 get() 메서드를 사용해도 딕셔너리 요소의 값을 가져올 수 있습니다.

예제

dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed','weekend':{'d1':'Saturday','d2':'Sunday'}}
print(dict['day2'])
print(dict['weekend'])
print(dict.get('day3'))

출력 결과

Tue
{'d1': 'Saturday', 'd2': 'Sunday'}
Wed

딕셔너리에 요소 추가하기

새로운 키-값 쌍을 추가하면 딕셔너리에 새로운 요소가 추가됩니다. 또한 다른 딕셔너리를 하나의 요소로 추가하여 중첩 딕셔너리(nested dictionary)를 만들 수도 있습니다.

예제

dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
dict['day4']='Thu'
dict['day5']='Fri'
print(dict)

출력 결과

{'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed', 'day4': 'Thu', 'day5': 'Fri'}

딕셔너리 수정하기

딕셔너리는 새 항목(키-값 쌍)을 추가하거나 기존 항목을 수정하는 방식으로 갱신할 수 있습니다. 새 요소 추가 방법은 앞에서 살펴보았으므로, 이번에는 기존 항목을 수정하는 방법을 알아보겠습니다. 기존 키를 지정하고 새로운 값을 할당하기만 하면 됩니다.

예제

dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
dict['day1']='Monday'
dict['day2']='Tuesday'
print(dict)

출력 결과

{'day1': 'Monday', 'day2': 'Tuesday', 'day3': 'Wed'}

딕셔너리 요소 삭제하기

딕셔너리의 특정 요소는 del 키워드를 사용하여 삭제할 수 있으며, 이 키워드로 딕셔너리 전체를 삭제할 수도 있습니다. 그 외에도 clear() 메서드를 사용하면 딕셔너리의 모든 요소를 한 번에 제거할 수 있습니다.

예제

dict = {'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
print(dict)
del dict['day3']
print(dict)
dict.clear()
print(dict)

출력 결과

{'day1': 'Mon', 'day2': 'Tue', 'day3': 'Wed'}
{'day1': 'Mon', 'day2': 'Tue'}
{}

딕셔너리 사용 시 주의해야 할 흔한 실수

  • dict_name[키] 방식으로 값에 접근하면 해당 키가 존재하지 않을 경우 예외(Exception)가 발생할 수 있습니다. 따라서 딕셔너리 요소에 접근할 때는 get() 메서드를 사용하는 것이 더 안전합니다.

  • 값을 수정할 때도 dict_name[키] = '새 값' 방식보다는 update(키=값) 메서드를 사용하는 것이 권장됩니다.

  • dict1 = dict2처럼 단순 할당으로 복사본을 만들면 두 변수가 동일한 객체를 참조하게 되어, 하나를 수정하면 둘 다 함께 변경됩니다. 독립적인 복사본이 필요하다면 얕은 복사(shallow copy)를 사용하세요.

  • 딕셔너리의 요소를 특정 순서대로 순회하고 싶다면 sorted() 메서드를 활용하세요.

  • 무조건 딕셔너리를 사용하기보다는, 상황에 맞게 튜플(tuple), 집합(set) 등 다른 자료구조가 더 적합한지 판단하고 선택하는 것이 좋습니다.