>백엔드 개발 >파이썬 튜토리얼 >Python에서 반복하는 동안 사전에서 항목을 안전하게 삭제하려면 어떻게 해야 합니까?

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

Barbara Streisand
Barbara Streisand원래의
2024-11-02 19:22:30893검색

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

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