반복 사전 수정
사전을 반복하는 동시에 사전에서 항목을 삭제해야 하는 경우가 일반적입니다. 그러나 이 작업은 Python에서 기본적으로 지원되지 않습니다.
사전을 반복하는 동안 사전을 수정하면 오류가 발생할 수 있습니다. 예를 들어, 제공하신 코드 조각은 Python 3에서 다음 오류와 함께 실패할 수 있습니다.
RuntimeError: dictionary changed size during iteration.
Python 3 Solution
Python 3에서 해결책은 다음과 같습니다. 사전의 키 목록을 가져와 대신 해당 목록을 반복합니다. 예는 다음과 같습니다.
<code class="python"># Python 3 or higher for k in list(mydict.keys()): if mydict[k] == 3: del mydict[k]</code>
이 접근 방식은 목록이 불변이고 사전 변경에 영향을 받지 않기 때문에 효과적입니다.
Python 2 솔루션
Python 2에서 키() 메서드는 반복 중에 수정할 수 없는 반복자를 반환합니다. 사전을 수정하려면 다음 접근 방식을 사용할 수 있습니다.
<code class="python"># Python 2 for k, v in mydict.items(): if v == 3: del mydict[k]</code>
Python 2에서는 반복자를 목록으로 변환할 수도 있습니다.
<code class="python">for k in mydict.keys(): if mydict[k] == 3: del mydict[k]</code>
대체 접근 방식
또는 pop() 메서드를 사용하여 반복하는 동안 사전에서 항목을 삭제할 수 있습니다.
<code class="python">for k in list(mydict.keys()): if k == 3: mydict.pop(k)</code>
이 접근 방식은 항목을 생성하지 않기 때문에 더 효율적입니다. 추가 목록입니다.
위 내용은 Python에서 반복하는 동안 사전에서 항목을 안전하게 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!