>  기사  >  백엔드 개발  >  Python에서 반복하는 동안 사전에서 항목을 안전하게 삭제하는 방법은 무엇입니까?

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

Linda Hamilton
Linda Hamilton원래의
2024-11-02 18:01:29191검색

How to Safely Delete Items from a Dictionary While Iterating in Python?

반복 사전 수정

사전을 반복하는 동시에 사전에서 항목을 삭제해야 하는 경우가 일반적입니다. 그러나 이 작업은 Python에서 기본적으로 지원되지 않습니다.

사전을 반복하는 동안 사전을 수정하면 오류가 발생할 수 있습니다. 예를 들어, 제공하신 코드 조각은 Python 3에서 다음 오류와 함께 실패할 수 있습니다.

RuntimeError: dictionary changed size during iteration.

Python 3 Solution

Python 3에서 해결책은 다음과 같습니다. 사전의 키 목록을 가져와 대신 해당 목록을 반복합니다. 예는 다음과 같습니다.

<code class="python"># Python 3 or higher

for k in list(mydict.keys()):
    if mydict[k] == 3:
        del mydict[k]</code>

이 접근 방식은 목록이 불변이고 사전 변경에 영향을 받지 않기 때문에 효과적입니다.

Python 2 솔루션

Python 2에서 키() 메서드는 반복 중에 수정할 수 없는 반복자를 반환합니다. 사전을 수정하려면 다음 접근 방식을 사용할 수 있습니다.

<code class="python"># Python 2

for k, v in mydict.items():
    if v == 3:
        del mydict[k]</code>

Python 2에서는 반복자를 목록으로 변환할 수도 있습니다.

<code class="python">for k in mydict.keys():
    if mydict[k] == 3:
        del mydict[k]</code>

대체 접근 방식

또는 pop() 메서드를 사용하여 반복하는 동안 사전에서 항목을 삭제할 수 있습니다.

<code class="python">for k in list(mydict.keys()):
    if k == 3:
        mydict.pop(k)</code>

이 접근 방식은 항목을 생성하지 않기 때문에 더 효율적입니다. 추가 목록입니다.

위 내용은 Python에서 반복하는 동안 사전에서 항목을 안전하게 삭제하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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