pop 말고 dict의 원소를 지우려면 어떻게 하나요?


python에서 dict의 원소를 지우려고 합니다. dict.pop()으로 지우는 방법은 알고 있는데 pop()은 삭제되는 원소를 return 하잖아요?

저는 원소가 지워진 dict를 return 받고 싶습니다.

제가 지금 쓰고 있는 함수는 myremove(원본, 결과, key) 같이 2개 dict를 인자로 받고 있는데요.

결과 = myremove(원본, key) 처럼 좀 더 파이썬스럽게 짤 수 있는 방법이 있을까요?

  • 2016년 01월 19일에 작성됨

조회수 169


1 답변


좋아요
0
싫어요
채택취소하기

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() 생성자는 얕은 복사를 진행합니다. 깊은 복사를 하시려면

  • 2016년 01월 19일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close