Adakah Kamus Disusun dalam Python 3.6 ?
Dalam Python versi 3.6 dan lebih baru, kamus mempamerkan susunan sisipan, bermakna mereka mengekalkan susunan yang pasangan nilai kunci ditambah. Tingkah laku ini tidak dijamin merentas semua pelaksanaan Python dan hanya digunakan untuk penterjemah CPython.
Peningkatan Kecekapan Pelaksanaan Kamus Python 3.6
Pelaksanaan kamus baharu dalam Python 3.6 menggunakan dua tatasusunan untuk mengekalkan kedua-dua tertib sisipan dan cincang yang cekap carian.
Pendekatan ini memanfaatkan saiz tatasusunan integer (dk_indices) yang lebih kecil berbanding dengan tatasusunan entri nilai kunci yang jarang digunakan sebelum ini (dk_entry), menghasilkan jejak memori yang lebih padat. Tatasusunan jarang yang sebelum ini diperuntukkan untuk menampung saiz tetap 2/3 ruang kosong untuk pengoptimuman prestasi tidak lagi diperlukan.
Visualisasi Struktur Data
Kamus contoh:
d = {'timmy': 'red', 'barry': 'green', 'guido': 'blue'}
Data Lama Struktur:
entries = [['--', '--', '--'], [-8522787127447073495, 'barry', 'green'], ['--', '--', '--'], ['--', '--', '--'], ['--', '--', '--'], [-9092791511155847987, 'timmy', 'red'], ['--', '--', '--'], [-6480567542315338377, 'guido', 'blue']]
Struktur Data Baharu:
indices = [None, 1, None, None, None, 0, None, 2] entries = [[-9092791511155847987, 'timmy', 'red'], [-8522787127447073495, 'barry', 'green'], [-6480567542315338377, 'guido', 'blue']]
Seperti yang digambarkan, struktur baharu memisahkan indeks dan entri, membolehkan peruntukan memori yang lebih cekap dan carian jadual cincang yang lebih pantas disebabkan saiz indeks yang lebih kecil tatasusunan.
Kesimpulan
Pelaksanaan kamus yang dipertingkatkan dalam Python 3.6 secara berkesan mengekalkan susunan sisipan sambil mengoptimumkan penggunaan memori melalui penggunaan tatasusunan kemasukan dan indeks yang berasingan. Pengoptimuman ini menghasilkan perwakilan dan pengurusan kamus yang lebih cekap, terutamanya dalam senario dengan kekangan ingatan atau apabila kamus besar diproses.
Atas ialah kandungan terperinci Adakah Kamus Python 3.6 Mengekalkan Tertib Sisipan dan Bagaimana Ini Dilaksanakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!