Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapakah Kamus Memesan Bukan Deterministik Post-Python 3.3?

Mengapakah Kamus Memesan Bukan Deterministik Post-Python 3.3?

Linda Hamilton
Lepaskan: 2024-10-21 15:22:02
asal
428 orang telah melayarinya

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

Mengapa Pesanan Kamus Tidak Tentu dalam Python 3.3?

Dalam versi Python sebelum 3.3, susunan kekunci kamus adalah sewenang-wenangnya tetapi konsisten. Walau bagaimanapun, dalam Python 3.3, pesanan ini menjadi bukan deterministik.

Perubahan ini terhasil daripada pembetulan keselamatan yang dilaksanakan pada tahun 2012 dan didayakan secara lalai dalam Python 3.3. Rawak cincang, yang diperkenalkan untuk menangani kelemahan keselamatan, menyebabkan susunan lelaran kamus dan set menjadi tidak dapat diramalkan dan berbeza merentas larian Python.

Untuk melumpuhkan rawak cincang, anda boleh menetapkan pembolehubah persekitaran PYTHONHASHSEED kepada 0.

Contoh Kontrantuitif

Walaupun contoh balas dalam soalan tidak konsisten menghasilkan hasil yang sama dalam Python 3.3, bilangan pesanan berbeza yang terhad berpunca daripada pengendalian perlanggaran cincang.

Had ini tidak lagi terdapat dalam Python 3.6 dan versi yang lebih baru, di mana susunan sisipan kamus sentiasa dipelihara.

Atas ialah kandungan terperinci Mengapakah Kamus Memesan Bukan Deterministik Post-Python 3.3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan