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!