pop 말고 dict의 원소를 지우려면 어떻게 하나요?
조회수 2762회
python에서 dict
의 원소를 지우려고 합니다.
dict.pop()
으로 지우는 방법은 알고 있는데
pop()
은 삭제되는 원소를 return 하잖아요?
저는 원소가 지워진 dict를 return 받고 싶습니다.
제가 지금 쓰고 있는 함수는
myremove(원본, 결과, key)
같이 2개 dict를 인자로 받고 있는데요.
결과 = myremove(원본, key)
처럼 좀 더 파이썬스럽게 짤 수 있는 방법이 있을까요?
1 답변
-
del d[key]도 원소를 지워줍니다. 다만
del d
원본 dict에서 원소d
를 제거하므로 새로운 원본 dict를 보존하면서 새로운 dict를 return 받을 때에는 다음과 같이 써주세요def removekey(d, key): r = dict(d) #r에 d를 복사 del r[key] #r에서 key를 제거(원본 d는 보존) return r #key를 제거한 dict return
이 함수에서 쓰인 dict() 생성자는 얕은 복사를 진행합니다. 깊은 복사를 하시려면
댓글 입력