Python에서 반복하는 동안 사전에서 항목을 안전하게 삭제하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-11-02 19:22:30
원래의
790명이 탐색했습니다.

How Can I Safely Delete Items From a Dictionary While Iterating in Python?

반복 중 사전에서 항목 삭제

사전을 반복하는 동안 사전의 내용을 수정해야 하는 경우가 많습니다. 그러나 반복 중에 항목을 직접 삭제하면 오류가 발생하거나 결과가 일관되지 않을 수 있습니다.

del을 사용하여 반복(Python 2)

Python 2에서 반복 중에 del을 사용하여 항목을 삭제하면 반복자가 문제를 일으킬 수 있습니다. 사전의 크기가 일정하게 유지될 것으로 예상합니다. 이 동작으로 인해 RuntimeError가 발생합니다. 대신 키 또는 항목 메서드를 사용하는 것이 좋습니다.

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

# or

for k, v in mydict.items():
    if v == val:
        del mydict[k]</code>
로그인 후 복사

del로 반복(Python 3)

Python 3에서 mydict.keys()는 목록이 아닌 반복자를 반환합니다. 반복 중에 사전을 수정하면 RuntimeError가 발생합니다. 이를 방지하려면 del을 사용하기 전에 반복자를 목록으로 변환하세요.

<code class="python">for k in list(mydict.keys()):
    if mydict[k] == 3:
        del mydict[k]</code>
로그인 후 복사

pop() 사용

또 다른 옵션은 pop() 메서드를 사용하여 항목을 제거하는 것입니다.

<code class="python">while mydict:
    k, v = mydict.popitem()
    if v == 3:
        mydict[k] = v

# or

for k in mydict.copy():
    if mydict[k] == 3:
        mydict.pop(k)</code>
로그인 후 복사

권장 사항

Python 3의 경우 런타임 오류를 방지하려면 목록 변환과 함께 키 또는 항목 메서드를 사용하는 것이 좋습니다. Python 2의 경우 사전을 안전하게 수정하려면 키 또는 항목 메소드를 직접 사용해야 합니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!