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

Python 딕셔너리에서 키를 제거하는 3가지 방법 (del, pop, 컴프리헨션)

딕셔너리(Dictionary)는 일상적인 프로그래밍은 물론 웹 개발, AI/ML 프로그래밍 등 다양한 실무 분야에서 폭넓게 활용되는 핵심 자료구조입니다. 그만큼 딕셔너리 관련 작업을 능숙하게 다룰 줄 알면 개발 생산성에 큰 도움이 됩니다. 이번 글에서는 Python 딕셔너리에서 특정 키(key)를 제거하는 대표적인 세 가지 방법을 예제 코드와 함께 살펴보겠습니다.

1. del 키워드 사용하기

del 키워드는 가장 직관적인 방법으로, 지정한 키와 해당 값을 딕셔너리에서 완전히 삭제합니다. 단, 존재하지 않는 키를 삭제하려고 하면 KeyError가 발생하므로 주의해야 합니다.

# del 키워드 사용 예제

# 딕셔너리 초기화
test_dict = {"Vishesh": 29, "Ram": 21, "Vishal": 27, "Prashant": 25}

# 삭제 전 딕셔너리 출력
print("삭제 전 딕셔너리 : " + str(test_dict))

# del을 사용하여 키 삭제
del test_dict['Vishal']

# 삭제 후 딕셔너리 출력
print("삭제 후 딕셔너리 : " + str(test_dict))

실행 결과

삭제 전 딕셔너리 : {'Vishesh': 29, 'Ram': 21, 'Vishal': 27, 'Prashant': 25}
삭제 후 딕셔너리 : {'Vishesh': 29, 'Ram': 21, 'Prashant': 25}

2. pop() 메서드 사용하기

pop() 메서드는 키를 삭제하는 동시에 삭제된 키의 값을 반환한다는 점이 특징입니다. 또한 두 번째 인자로 기본값을 지정하면, 존재하지 않는 키를 삭제하려 할 때 KeyError 대신 기본값을 반환하므로 예외 걱정 없이 안전하게 사용할 수 있습니다.

# pop() 메서드 사용 예제

# 딕셔너리 초기화
test_dict = {"Vishesh": 29, "Ram": 21, "Vishal": 27, "Prashant": 25}

# 삭제 전 딕셔너리 출력
print("삭제 전 딕셔너리 : " + str(test_dict))

# pop()으로 키-값 쌍 삭제
removed_value = test_dict.pop('Ram')

# 삭제 후 딕셔너리와 삭제된 값 출력
print("삭제 후 딕셔너리 : " + str(test_dict))
print("삭제된 키의 값 : " + str(removed_value))

# 존재하지 않는 키를 삭제할 때 예외 없이 기본값 처리
removed_value = test_dict.pop('Nilesh', '키를 찾을 수 없음')

print("삭제 후 딕셔너리 : " + str(test_dict))
print("삭제된 키의 값 : " + str(removed_value))

실행 결과

삭제 전 딕셔너리 : {'Vishesh': 29, 'Ram': 21, 'Vishal': 27, 'Prashant': 25}
삭제 후 딕셔너리 : {'Vishesh': 29, 'Vishal': 27, 'Prashant': 25}
삭제된 키의 값 : 21
삭제 후 딕셔너리 : {'Vishesh': 29, 'Vishal': 27, 'Prashant': 25}
삭제된 키의 값 : 키를 찾을 수 없음

3. items() + 딕셔너리 컴프리헨션 사용하기

items() 메서드와 딕셔너리 컴프리헨션(dict comprehension)을 조합하면, 조건에 맞지 않는 키를 제외한 새로운 딕셔너리를 생성할 수 있습니다. 원본 딕셔너리를 그대로 유지한 채 필터링된 결과가 필요할 때 특히 유용합니다.

# items() + 딕셔너리 컴프리헨션 사용 예제

# 딕셔너리 초기화
test_dict = {"Vishesh": 29, "Ram": 21, "Vishal": 27, "Prashant": 25}

# 삭제 전 딕셔너리 출력
print("삭제 전 딕셔너리 : " + str(test_dict))

# 컴프리헨션으로 특정 키를 제외한 새 딕셔너리 생성
new_dict = {key: val for key, val in test_dict.items() if key != 'Prashant'}

# 결과 출력
print("필터링 후 딕셔너리 : " + str(new_dict))

실행 결과

삭제 전 딕셔너리 : {'Vishesh': 29, 'Ram': 21, 'Vishal': 27, 'Prashant': 25}
필터링 후 딕셔너리 : {'Vishesh': 29, 'Ram': 21, 'Vishal': 27}

마무리: 어떤 방법을 선택해야 할까?

세 가지 방법의 특징을 정리하면 다음과 같습니다.

  • del: 간단하고 빠르지만, 존재하지 않는 키를 삭제하면 KeyError가 발생
  • pop(): 삭제된 값을 반환하며, 기본값을 지정해 예외를 방지할 수 있어 가장 안전
  • 딕셔너리 컴프리헨션: 원본을 유지하면서 조건에 맞는 새 딕셔너리를 생성

상황과 요구사항에 맞는 적절한 방법을 선택하면, 더욱 안정적이고 효율적인 Python 코드를 작성할 수 있습니다.