>백엔드 개발 >파이썬 튜토리얼 >반복 중에 사전에서 항목을 안전하게 제거하는 방법은 무엇입니까?

반복 중에 사전에서 항목을 안전하게 제거하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-02 02:34:30439검색

How to Safely Remove Items from a Dictionary During Iteration?

사전 수정 시 "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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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