>  기사  >  백엔드 개발  >  \"런타임 오류: 반복 중에 사전 크기가 변경됨\"을 방지하는 방법은 무엇입니까?

\"런타임 오류: 반복 중에 사전 크기가 변경됨\"을 방지하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-04 10:01:30274검색

How to Avoid

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

사전을 반복하는 동안 사전을 수정하려고 하면 " RuntimeError: 반복 중에 사전 크기가 변경되었습니다." 오류가 발생했습니다. 이는 반복하는 동안 사전의 크기를 수정(항목 추가 또는 제거)하면 반복자가 무효화되기 때문에 발생합니다.

이 문제를 해결하기 위해 권장되는 접근 방식은 list() 또는 iterate를 사용하여 사전 키의 복사본을 생성하는 것입니다. d.keys()를 통해 키를 덮어씁니다. Python 3.x의 경우 d.keys()는 뷰 객체를 반환하므로 list()를 사용하여 명시적인 복사본을 생성해야 합니다.

예를 들어 다음 사전을 고려하세요.

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

빈 목록이 있는 키-값 쌍을 제거하려면 다음 코드를 사용할 수 있습니다.

<code class="python">for i in list(d):  # Python 3.x
# or
for i in d.keys():  # Python 2.x
    if not d[i]:
        d.pop(i)</code>

list()를 사용하여 키 복사본을 생성하면 반복 중에 사전 크기를 수정하는 문제를 방지할 수 있습니다. 루프가 성공적으로 완료되었는지 확인하세요.

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

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