"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python에서 \"RuntimeError: 반복 중에 사전 크기가 변경됨\"을 방지하는 방법은 무엇입니까?

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

2024년 11월 10일에 게시됨
검색:768

How to Avoid the \

"런타임 오류: 반복 중에 사전 변경 크기" 오류 방지

다음과 같이 사전을 반복하는 동안 사전을 수정하려고 시도합니다. 아래 코드 조각은 "RuntimeError: 반복 중에 사전 크기가 변경되었습니다." 오류를 유발할 수 있습니다:

d = {'a': [1], 'b': [1, 2], 'c': [], 'd':[]}

for i in d:
    if not d[i]:
        d.pop(i)

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

Python 2.x 및 3.x:

'list':

for i in list(d):

Python 3.x(이상):

'collections.OrderedDict' 사용:

from collections import OrderedDict

for i in OrderedDict(d):

대체 솔루션:

  1. 원하는 수정 사항으로 새 사전을 생성합니다:
new_d = {}
for key, value in d.items():
    if value:
        new_d[key] = value
  1. Python 3.3의 'popitem' 메소드를 사용하고 복사본을 반복합니다:
keys_to_pop = list(d)
for i in keys_to_pop:
    if not d[i]:
        d.popitem(i)

이러한 기술을 활용하면 Python에서 사전을 처리할 때 "RuntimeError: 반복 중에 사전 변경 크기" 오류를 피할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3