사전 수정 시 "RuntimeError: 사전 변경 크기" 오류 방지
사전을 반복할 때 항목을 추가하거나 제거하면 다음이 발생할 수 있습니다. "RuntimeError: 반복 중에 사전 크기가 변경되었습니다" 오류가 발생했습니다. 이 문서에서는 사전에서 빈 목록 값이 있는 키-값 쌍을 제거하려는 시나리오를 살펴봅니다.
문제 설명:
키가 포함된 사전 d가 주어졌습니다. 값이 목록인 값 쌍, 값이 빈 목록인 키-값 쌍을 제거하려고 합니다. 그러나 조건부 검사와 함께 for 루프를 사용하면 앞서 언급한 오류가 발생합니다.
해결책:
이 오류를 방지하려면 list() 함수를 사용하여 사전의 키입니다. 이렇게 하면 사전 수정 사항과 관계없이 반복할 수 있는 별도의 키 목록이 생성됩니다.
<code class="python">for i in list(d): if not d[i]: d.pop(i)</code>
Python 2.x에 대한 대체 접근 방식:
Python 2 .x, 사전에서 .keys() 메서드를 호출하면 키 복사본이 반환됩니다. 따라서 다음 접근 방식을 사용할 수 있습니다.
<code class="python">for i in d.keys():</code>
Python 3.x에 대한 참고 사항:
Python 3.x에서 .keys() 메서드는 다음을 반환합니다. 복사본 대신 뷰 객체. 결과적으로 두 번째 접근 방식은 Python 3.x에서 작동하지 않습니다.
위 내용은 반복 중에 사전에서 항목을 안전하게 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!