>  기사  >  백엔드 개발  >  Python에서 `iteritems()`를 사용하여 반복하는 동안 사전을 안전하게 수정할 수 있습니까?

Python에서 `iteritems()`를 사용하여 반복하는 동안 사전을 안전하게 수정할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 05:47:28613검색

 Can You Safely Modify a Dictionary While Iterating with `iteritems()` in Python?

반복 사전이 기본 항목을 안전하게 수정할 수 있나요?

iteritems()를 사용하여 Python 사전을 순회할 때 사전 수정으로 인해 예상치 못한 결과가 발생할 수 있습니다. 결과. 항목(예: del d[f(k)])을 제거하면 "RuntimeError: 반복 중에 사전 변경 크기"가 발생할 수 있습니다.

공식 문서:

에 따르면 Python 문서에서는 반복 중에 사전을 수정해서는 안 됩니다. iteritems() 메서드는 사전의 키 및 값 복사본을 반복하지만 기본 사전 자체는 반복하지 않습니다. 따라서 사전에 대한 직접적인 수정(예: 항목 삭제 또는 추가)은 반복자에 반영되지 않습니다.

안전 수칙:

이 문제를 방지하려면, 문서에서는 d.copy().items()를 사용하여 반복하기 전에 사전의 독립적인 복사본을 만들 것을 제안합니다. 또는 키 목록을 반복하고 루프 내에서 del d[key] 또는 d[key] = newValue를 사용할 수 있습니다.

부분 수정:

동안 새 키에 항목을 추가하면 문제가 발생할 수 있으므로 기존 값을 수정하는 것은 일반적으로 안전합니다. 그러나 기존 키의 값을 수정하면 해시 값이 변경되어 잠재적으로 사전에서의 위치에 영향을 미칠 수 있습니다.

위 내용은 Python에서 `iteritems()`를 사용하여 반복하는 동안 사전을 안전하게 수정할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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