Rumah >pembangunan bahagian belakang >Tutorial Python >Adakah Kamus Python 3.6 Disusun dan Bagaimana Ini Memberi Impak Prestasi?

Adakah Kamus Python 3.6 Disusun dan Bagaimana Ini Memberi Impak Prestasi?

Patricia Arquette
Patricia Arquetteasal
2024-12-21 17:19:101063semak imbas

Are Python 3.6  Dictionaries Ordered, and How Does This Impact Performance?

Adakah Kamus Python 3.6 Disusun?

Dalam Python versi 3.6 dan ke atas, kamus mengekalkan susunan sisipan untuk elemennya. Tingkah laku ini dikenali sebagai "pesanan sisipan." Tidak seperti OrderedDict, yang menawarkan keupayaan berkaitan pesanan lanjutan, kamus hanya mengekalkan susunan sisipan elemen.

Cara Python 3.6 Meningkatkan Prestasi Kamus Sambil Memelihara Susunan

The Python 3.6 pelaksanaan kamus menggunakan pendekatan dwi-array untuk menangani kecekapan memori sambil mengekalkan sisipan tertib.

  • dk_entry tatasusunan: Menyimpan entri kamus dalam susunan yang dimasukkan.
  • dk_indices array: Mengandungi indeks titik itu kepada tatasusunan dk_entry.

Pendekatan ini mengelakkan keperluan untuk tatasusunan yang jarang penduduk, yang berlaku dalam pelaksanaan sebelumnya. Sebaliknya, ia hanya menyimpan entri yang diperlukan dan indeksnya, menghasilkan penggunaan memori yang lebih padat.

Perwakilan Visual:

Pertimbangkan kamus berikut:

d = {'timmy': 'red', 'barry': 'green', 'guido': 'blue'}

Di bawah pelaksanaan baharu, ia akan disimpan sebagai:

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

Berbanding dengan pelaksanaan sebelumnya, pendekatan ini mengurangkan pembaziran memori dengan ketara.

Faedah Pelaksanaan Kamus Baharu

Terutamanya, pelaksanaan baharu meningkatkan penggunaan memori sambil mengekalkan susunan sisipan. Walaupun perbezaan kelajuan antara pelaksanaan lama dan baharu tidak dramatik, operasi tertentu seperti lelaran dan saiz semula mungkin menyaksikan peningkatan prestasi.

Atas ialah kandungan terperinci Adakah Kamus Python 3.6 Disusun dan Bagaimana Ini Memberi Impak Prestasi?. 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