>백엔드 개발 >파이썬 튜토리얼 >Python에서 \'RuntimeError: 반복 중에 사전 크기가 변경됨\'을 방지하는 방법은 무엇입니까?

Python에서 \'RuntimeError: 반복 중에 사전 크기가 변경됨\'을 방지하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-03 18:59:02396검색

How to Avoid the

"RuntimeError: 사전이 반복 중에 크기가 변경됨" 오류 방지

다음에서 볼 수 있듯이 사전을 반복하는 동안 사전을 수정하려고 합니다. 아래의 코드 조각은 "RuntimeError: 반복 중에 사전 변경 크기" 오류를 유발할 수 있습니다.

<code class="python">d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}

for i in d:
    if not d[i]:
        d.pop(i)</code>

이 제한을 극복하기 위해 다양한 접근법을 사용할 수 있습니다:

Python 2. x 및 3.x:

'list'를 사용하여 키 복사본 강제 적용:

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

Python 3.x(이상):

'collections.OrderedDict' 사용:

<code class="python">from collections import OrderedDict

for i in OrderedDict(d):</code>

대체 솔루션:

  1. 원하는 수정 사항을 적용하여 새 사전을 만듭니다.
<code class="python">new_d = {}
for key, value in d.items():
    if value:
        new_d[key] = value</code>
  1. Python 3.3의 'popitem' 메서드를 사용하고 복사본을 반복합니다.
<code class="python">keys_to_pop = list(d)
for i in keys_to_pop:
    if not d[i]:
        d.popitem(i)</code>

이러한 기술을 활용하면 Python에서 사전을 처리할 때 "RuntimeError: 반복 중에 사전 크기가 변경되었습니다." 오류가 발생했습니다.

위 내용은 Python에서 'RuntimeError: 반복 중에 사전 크기가 변경됨'을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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