>  기사  >  백엔드 개발  >  빈 값을 기반으로 키를 제거할 때 \"RuntimeError: Dictionary selected size while iteration\" 오류를 해결하려면 어떻게 해야 합니까?

빈 값을 기반으로 키를 제거할 때 \"RuntimeError: Dictionary selected size while iteration\" 오류를 해결하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-03 10:21:29525검색

How Can I Resolve the

"RuntimeError:dictionaryChanged size while iteration" 오류에 대한 해결 방법

"RuntimeError: dictionarychange size while iteration" 오류가 발생하는 시나리오를 고려해보세요. 목록 사전의 빈 값을 기반으로 키-값 쌍을 제거하려고 할 때 "반복"이 발생합니다. 아래 코드는 오류의 예입니다.

<code class="python">d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}
for i in d:
    if not d[i]:
        d.pop(i)</code>

이 오류는 반복 중에 사전을 수정(항목 추가 또는 제거)하면 예기치 않은 동작이 발생한다는 규칙에서 발생합니다. 이러한 제한을 피하고 문제를 성공적으로 해결하려면 다음 접근 방식을 채택할 수 있습니다.

키 복사본 사용

Python은 문제를 해결하는 깔끔한 방법을 제공합니다. 반복 제한:

<code class="python">for i in list(d):</code>

키 목록을 생성하면 기본적으로 사전 키의 복사본이 생성됩니다. 이를 통해 사전 자체를 변경하는 동안 복사본을 반복할 수 있습니다.

.keys() 메서드 사용(Python 2.x에만 해당)

Python 2 .x에서 .keys() 메서드는 유사한 기능을 제공하여 효과적으로 키 복사본을 생성했습니다.

<code class="python">for i in d.keys():</code>

그러나 Python 3.x에서 .keys()는 다음을 반환한다는 점에 유의하는 것이 중요합니다. 개체를 보면 해결 방법이 적용되지 않습니다.

위 내용은 빈 값을 기반으로 키를 제거할 때 \"RuntimeError: Dictionary selected size while iteration\" 오류를 해결하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.