ตั้งแต่ Python 3.6 เป็นต้นไปdict
ประเภทมาตรฐานจะเก็บรักษาลำดับการแทรกตามค่าเริ่มต้น
การกำหนด
d = {'ac':33, 'gw':20, 'ap':102, 'za':321, 'bs':10}
จะส่งผลให้พจนานุกรมพร้อมปุ่มตามลำดับที่ระบุไว้ในซอร์สโค้ด
สิ่งนี้สามารถทำได้โดยการใช้อาเรย์อย่างง่ายที่มีจำนวนเต็มสำหรับตารางแฮชกระจัดกระจายซึ่งดัชนีจำนวนเต็มเหล่านั้นไปยังอาเรย์อื่นที่เก็บคู่ของคีย์ - ค่า (รวมถึงแฮชที่คำนวณได้) อาร์เรย์หลังนั้นเกิดขึ้นเพื่อจัดเก็บรายการตามลำดับการแทรกและชุดค่าผสมทั้งหมดใช้หน่วยความจำน้อยกว่าการใช้งานใน Python 3.5 และก่อนหน้า ดูโพสต์ความคิดดั้งเดิมโดย Raymond Hettingerสำหรับรายละเอียด
ใน 3.6 นี้ยังถือว่าเป็นรายละเอียดการใช้งาน; เห็นมีอะไรใหม่ในหลาม 3.6เอกสาร :
ด้านการรักษาลำดับของการใช้งานใหม่นี้ถือว่าเป็นรายละเอียดการใช้งานและไม่ควรพึ่งพา (อาจเปลี่ยนแปลงได้ในอนาคต แต่เป็นที่ต้องการที่จะมีการใช้งาน dict ใหม่นี้ในภาษาสำหรับรุ่นไม่กี่ก่อนที่จะเปลี่ยนข้อมูลจำเพาะภาษา เพื่อมอบอำนาจความหมายเพื่อรักษาคำสั่งซื้อสำหรับการใช้งาน Python ปัจจุบันและอนาคตทั้งหมดนี้ยังช่วยรักษาความเข้ากันได้ย้อนหลังกับภาษารุ่นเก่าที่คำสั่งการสุ่มซ้ำยังคงมีผลเช่น Python 3.5)
Python 3.7 ยกระดับรายละเอียดการใช้งานนี้เป็นข้อกำหนดภาษาดังนั้นตอนนี้จึงจำเป็นต้องdict
รักษาลำดับในการใช้งาน Python ทั้งหมดที่เข้ากันได้กับเวอร์ชันนั้นหรือใหม่กว่า ดูคำวินิจฉัยโดย BDFL
คุณอาจยังต้องการใช้collections.OrderedDict()
คลาสในบางกรณีเนื่องจากมีฟังก์ชันการทำงานเพิ่มเติมบางอย่างที่ด้านบนของdict
ประเภทมาตรฐาน เช่นการย้อนกลับ (สิ่งนี้ขยายไปถึงวัตถุมุมมอง ) และสนับสนุนการจัดเรียงใหม่ (ผ่านmove_to_end()
วิธีการ )