del 키워드로 키 제거하기
파이썬에서 del 키워드는 거의 모든 객체에 적용할 수 있는 삭제 연산자입니다. 딕셔너리에서 특정 항목을 삭제하려면 del 문 뒤에 제거하고 싶은 키를 지정하면 됩니다.
>>> D1 = {1: 'a', 2: 'b', 3: 'c', 'x': 1, 'y': 2, 'z': 3}
>>> del D1['x']
>>> D1
{1: 'a', 2: 'b', 3: 'c', 'y': 2, 'z': 3}
위 예제에서 볼 수 있듯이 del D1['x']를 실행하면 키 'x'와 그에 대응하는 값이 함께 딕셔너리에서 사라집니다.
pop() 메서드로 키 제거하기
키-값 쌍을 제거하는 또 다른 방법은 pop() 메서드를 사용하는 것입니다. 이 메서드는 키를 인수로 받으며, 해당 키의 값을 반환한 뒤 항목을 딕셔너리에서 제거합니다.
>>> D1 = {1: 'a', 2: 'b', 3: 'c', 'x': 1, 'y': 2, 'z': 3}
>>> D1.pop('y')
2
>>> D1
{1: 'a', 2: 'b', 3: 'c', 'x': 1, 'z': 3}
del과 pop()의 차이점
del은 단순히 항목을 삭제만 하지만, pop()은 삭제된 값을 반환한다는 점이 다릅니다. 따라서 제거된 값을 변수에 저장하거나 다른 로직에서 활용해야 한다면 pop()이 더 적합합니다.
존재하지 않는 키를 안전하게 처리하기
존재하지 않는 키를 삭제하려고 하면 KeyError가 발생합니다. pop() 메서드는 두 번째 인수로 기본값을 지정할 수 있어, 키가 없더라도 오류 없이 안전하게 처리할 수 있습니다.
>>> D1.pop('w', None) # 'w' 키가 없으면 None을 반환하고 오류가 발생하지 않음
반면 del 문에는 기본값 옵션이 없으므로, 키의 존재 여부가 확실하지 않다면 in 연산자로 먼저 확인한 후 삭제하는 것이 좋습니다.