Python 딕셔너리 항목 제거의 기본: del 키워드
Python에서 딕셔너리(dictionary)의 항목을 제거하는 가장 기본적인 방법은 del 키워드를 사용하는 것입니다. 특정 키를 직접 지정하여 삭제할 수 있으며, 반복문을 활용하면 모든 키를 순차적으로 제거할 수도 있습니다.
my_dict = {'name': 'foo', 'age': 28}
keys = list(my_dict.keys())
for key in keys:
del my_dict[key]
print(my_dict)실행 결과:
{}위 예제는 딕셔너리의 모든 항목을 하나씩 삭제하는 과정을 보여줍니다. 여기서 중요한 점은 반복문 실행 중 딕셔너리의 크기가 변경되면 RuntimeError가 발생할 수 있으므로, list(my_dict.keys())처럼 키 목록을 미리 복사한 뒤 순회해야 한다는 것입니다.
pop() 메서드로 항목 삭제하기
pop() 메서드 역시 특정 키를 삭제하는 데 널리 사용됩니다. del과 마찬가지로 반복문과 함께 사용하면 모든 항목을 제거할 수 있습니다.
my_dict = {'name': 'foo', 'age': 28}
keys = list(my_dict.keys())
for key in keys:
my_dict.pop(key)
print(my_dict)실행 결과:
{}del과 pop()의 차이점
두 방법은 비슷해 보이지만 중요한 차이가 있습니다.
- del: 값을 반환하지 않고 단순히 삭제만 수행합니다. 존재하지 않는 키를 삭제하려 하면
KeyError가 발생합니다. - pop(): 삭제된 키에 해당하는 값을 반환합니다. 두 번째 인자로 기본값을 지정하면 키가 존재하지 않아도 오류 없이 처리할 수 있습니다. 예:
my_dict.pop('name', None)
그 외 유용한 삭제 방법
상황에 따라 아래 방법들도 활용할 수 있습니다.
- clear(): 딕셔너리의 모든 항목을 한 번에 삭제합니다.
- popitem(): 마지막 키-값 쌍을 제거하고 해당 쌍을 반환합니다.
- 딕셔너리 컴프리헨션: 조건에 맞는 항목만 남긴 새로운 딕셔너리를 생성하여 사실상 필터링 효과를 얻습니다.
정리하면, 단순히 키를 삭제할 때는 del, 삭제된 값이 필요하거나 안전한 삭제가 필요할 때는 pop()을 사용하는 것이 가장 좋은 선택입니다.