파이썬

[python] Python 사전에서 키를 제거하려면 어떻게 해야 합니까?

zooheon 2022. 8. 28. 20:32
반응형

를 올리지 않고 사전에서 키를 삭제하는 한 줄 방법이 KeyError있습니까?

if 'key' in my_dict:
    del my_dict['key']

 

키가 사전에 있는지 여부에 관계없이 키를 삭제하려면 두 인수 형식을 사용합니다 dict.pop().

my_dict.pop('key', None)

사전에 존재하는 my_dict[key]경우 반환 되고 그렇지 않은 경우 반환됩니다. 두 번째 매개변수가 지정되지 않고(즉 ) 존재하지 않으면 a 가 발생합니다.keyNonemy_dict.pop('key')keyKeyError

존재가 보장된 키를 삭제하려면 다음을 사용할 수도 있습니다.

del my_dict['key']

KeyError키가 사전에 없으면 발생합니다 .

 

특히 "이 작업을 수행하는 한 줄 방법이 있습니까?"

if 'key' in my_dict: del my_dict['key']

...글쎄, 당신이 물었 습니다 ;-)

dict그러나 a에서 객체를 삭제하는 이 방법은 원자적이지 않다는을 고려해야 합니다. 이는 명령문 중에 있을 'key'수 있지만 가 실행되기 전에 삭제될 수 있으며, 이 경우 . 이를 감안할 때 다음 중 하나를 사용하는 것이 가장 안전 합니다.my_dictifdeldelKeyErrordict.pop

try:
    del my_dict['key']
except KeyError:
    pass

물론 이것은 한 줄짜리 가 아닙니다 .

 

정확히 무엇을 하는지 파악하는 데 시간이 좀 걸렸습니다 my_dict.pop("key", None). 따라서 다른 사람들이 인터넷 검색 시간을 절약하기 위해 이것을 답변으로 추가하겠습니다.

pop(key[, default])

key 가 사전에 있으면 제거하고 값을 반환하고 그렇지 않으면 default 를 반환 합니다. 기본값 이 제공되지 않고 가 사전에 없으면 발생 KeyError합니다.

선적 서류 비치

 

반응형