사전을 반복하는 동안 사전의 내용을 수정해야 하는 경우가 많습니다. 그러나 반복 중에 항목을 직접 삭제하면 오류가 발생하거나 결과가 일관되지 않을 수 있습니다.
Python 2에서 반복 중에 del을 사용하여 항목을 삭제하면 반복자가 문제를 일으킬 수 있습니다. 사전의 크기가 일정하게 유지될 것으로 예상합니다. 이 동작으로 인해 RuntimeError가 발생합니다. 대신 키 또는 항목 메서드를 사용하는 것이 좋습니다.
<code class="python">for k in mydict.keys(): if k == val: del mydict[k] # or for k, v in mydict.items(): if v == val: del mydict[k]</code>
Python 3에서 mydict.keys()는 목록이 아닌 반복자를 반환합니다. 반복 중에 사전을 수정하면 RuntimeError가 발생합니다. 이를 방지하려면 del을 사용하기 전에 반복자를 목록으로 변환하세요.
<code class="python">for k in list(mydict.keys()): if mydict[k] == 3: del mydict[k]</code>
또 다른 옵션은 pop() 메서드를 사용하여 항목을 제거하는 것입니다.
<code class="python">while mydict: k, v = mydict.popitem() if v == 3: mydict[k] = v # or for k in mydict.copy(): if mydict[k] == 3: mydict.pop(k)</code>
Python 3의 경우 런타임 오류를 방지하려면 목록 변환과 함께 키 또는 항목 메서드를 사용하는 것이 좋습니다. Python 2의 경우 사전을 안전하게 수정하려면 키 또는 항목 메소드를 직접 사용해야 합니다.
위 내용은 Python에서 반복하는 동안 사전에서 항목을 안전하게 삭제하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!