반복적인 사전 수정
사전을 반복하는 동시에 사전에서 항목을 삭제해야 하는 것이 일반적입니다. 그러나 이 작업은 Python에서 기본적으로 지원되지 않습니다.
사전을 반복하는 동안 사전을 수정하면 오류가 발생할 수 있습니다. 예를 들어, 제공한 코드 조각은 Python 3에서 다음 오류와 함께 실패할 수 있습니다.
RuntimeError: dictionary changed size during iteration.
Python 3 Solution
Python 3에서 해결책은 사전에서 키 목록을 생성하고 대신 해당 목록을 반복하는 것입니다. 예는 다음과 같습니다.
# Python 3 or higher
for k in list(mydict.keys()):
if mydict[k] == 3:
del mydict[k]
이 접근 방식은 목록이 불변이고 사전 변경에 영향을 받지 않기 때문에 작동합니다.
Python 2 솔루션
Python 2에서 키() 메서드는 반복 중에 수정할 수 없는 반복자를 반환합니다. 사전을 수정하려면 다음 접근 방식을 사용할 수 있습니다.
# Python 2
for k, v in mydict.items():
if v == 3:
del mydict[k]
Python 2에서는 반복자를 목록으로 변환할 수도 있습니다:
for k in mydict.keys():
if mydict[k] == 3:
del mydict[k]
대체 접근 방법
또는 pop() 메서드를 사용하여 반복하는 동안 사전에서 항목을 삭제할 수 있습니다.
for k in list(mydict.keys()):
if k == 3:
mydict.pop(k)
이 접근 방식은 추가 목록을 생성하지 않기 때문에 더 효율적입니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3