Rumah >pembangunan bahagian belakang >Tutorial Python >Adakah Kamus Python Dijamin untuk Mengekalkan Susunan Sisipan dalam 3.6?

Adakah Kamus Python Dijamin untuk Mengekalkan Susunan Sisipan dalam 3.6?

Patricia Arquette
Patricia Arquetteasal
2024-12-20 19:37:141033semak imbas

Are Python Dictionaries Guaranteed to Maintain Insertion Order in 3.6 ?

Adakah Kamus Disusun dalam Python 3.6 ?

Sehingga Python 3.6, kamus dalam pelaksanaan CPython adalah sisipan, bermakna mereka mengekalkan susunan itu daripada item yang dimasukkan. Walau bagaimanapun, tingkah laku ini dianggap sebagai perincian pelaksanaan dan tidak boleh dipercayai.

Tempahan Sisipan Terjamin dalam Python 3.7

Dalam Python 3.7, susunan sisipan untuk kamus menjadi ciri bahasa terjamin. Ini bermakna semua pelaksanaan Python yang mematuhi mesti menawarkan kamus tertib sisipan.

Peningkatan Prestasi dengan Susunan Sisipan

Pelaksanaan kamus baharu dalam Python 3.6 mencapai susunan sisipan dengan mengekalkan dua tatasusunan:

  • dk_entry: Memegang kunci dan nilai entri mengikut tertib sisipan.
  • dk_indices: Menyimpan indeks ke dalam dk_entry, bertindak sebagai jadual cincang.

Reka bentuk ini mengurangkan overhed memori dengan menyimpan hanya entri yang diperlukan dan menggunakan jarang susunan indeks. Pelaksanaan sebelumnya memperuntukkan tatasusunan entri kunci dan nilai yang jarang, menghasilkan ruang kosong.

Penggambaran Struktur Data

Contohnya, kamus { 'timmy': ' merah', 'barry': 'hijau', 'guido': 'biru' } disimpan sebagai:

indices = [None, 1, None, None, None, 0, None, 2]
entries = [[-9092791511155847987, 'timmy', 'red'],
           [-8522787127447073495, 'barry', 'green'],
           [-6480567542315338377, 'guido', 'blue']]

Dalam reka bentuk lama, akan terdapat banyak ruang kosong untuk meminimumkan perlanggaran. Pendekatan baharu ini mengurangkan penggunaan ingatan dengan mengalihkan jarang kepada tatasusunan indeks.

Kesimpulannya, susunan sisipan dalam kamus Python 3.6 ialah peningkatan ketara yang meningkatkan kecekapan ingatan dan menjadikan kamus lebih dipercayai merentas pelaksanaan Python.

Atas ialah kandungan terperinci Adakah Kamus Python Dijamin untuk Mengekalkan Susunan Sisipan dalam 3.6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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