Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Python mengendalikan susunan kunci kamus dalam versi sebelum 3.7?

Bagaimanakah Python mengendalikan susunan kunci kamus dalam versi sebelum 3.7?

Barbara Streisand
Lepaskan: 2024-11-11 17:48:02
asal
937 orang telah melayarinya

How did Python handle dictionary key order in versions before 3.7?

Susunan Kunci dalam Kamus dalam Versi Python Sebelumnya

Apabila mendapatkan semula kunci kamus menggunakan kaedah keys() dalam versi Python sebelum 3.7, susunan kunci dalam senarai yang dikembalikan mungkin kelihatan sewenang-wenangnya. Ketidakpastian ini berpunca daripada cara Python mengendalikan kamus dalam versi terdahulu.

Python 3.7

Bermula dengan Python 3.7, kamus mengekalkan susunan sisipan secara lalai. Ini bermakna kekunci dalam senarai keluaran keys() akan sepadan dengan susunan ia dimasukkan ke dalam kamus.

Python 3.6 (CPython)

Dalam Python 3.6 (khususnya pelaksanaan CPython ), kamus juga lalai kepada pemeliharaan pesanan sisipan. Walau bagaimanapun, ini dianggap sebagai perincian pelaksanaan dan kebolehpercayaannya merentas pelaksanaan Python yang berbeza tidak dijamin.

Python >=2.7 dan <3.6

Untuk versi Python antara 2.7 dan 3.6, susunan kekunci dalam senarai kekunci() ditentukan oleh fungsi cincang. Fungsi cincang ini tidak dijamin stabil, jadi susunan kunci mungkin berbeza antara pelaksanaan, walaupun dengan data input yang sama.

Untuk memastikan susunan sisipan dalam versi Python yang lebih awal ini, anda harus menggunakan koleksi. Kelas OrderedDict. Kelas ini menjamin bahawa kunci akan diambil mengikut susunan ia dimasukkan:

import collections

d = collections.OrderedDict({'a': 0, 'b': 1, 'c': 2})
l = d.keys()

print(l)  # Output: ['a', 'b', 'c']
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Python mengendalikan susunan kunci kamus dalam versi sebelum 3.7?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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