"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Post-Python 3.3에서 사전 순서가 비결정적인 이유는 무엇입니까?

Post-Python 3.3에서 사전 순서가 비결정적인 이유는 무엇입니까?

2024년 11월 10일에 게시됨
검색:251

Why Is Dictionary Ordering Non-Deterministic Post-Python 3.3?

Python 3.3에서 사전 순서 지정이 비결정적인 이유는 무엇입니까?

3.3 이전 Python 버전에서는 사전 키 순서가 임의적이었지만 일관된. 그러나 Python 3.3에서는 이 순서가 비결정적이었습니다.

이 변경 사항은 2012년에 구현된 보안 수정으로 인해 발생했으며 Python 3.3에서는 기본적으로 활성화되었습니다. 보안 취약성을 해결하기 위해 도입된 해시 무작위화로 인해 사전 및 세트의 반복 순서가 예측 불가능해지고 Python 실행마다 달라지게 됩니다.

해시 무작위화를 비활성화하려면 PYTHONHASHSEED 환경 변수를 0으로 설정할 수 있습니다.

반직관적인 예

질문에 있는 반직관적인 예는 Python 3.3에서 일관되게 동일한 결과를 산출하지 않으며, 제한된 수의 다른 순서 지정은 해시 충돌 처리에서 비롯됩니다.

이 제한은 Python 3.6 및 이후 버전에서는 더 이상 존재하지 않습니다. 항상 보존됩니다.

릴리스 선언문 이 글은 1729494257에서 재인쇄되었습니다. 침해 내용이 있는 경우, [email protected]으로 연락하여 삭제하시기 바랍니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3