การกระจายมาตรฐานของ Python ประกอบด้วยโมดูลคอลเลกชัน มีคำจำกัดความของประเภทข้อมูลคอนเทนเนอร์ที่มีประสิทธิภาพสูง OrderedDict เป็นคลาสย่อยของพจนานุกรมที่จดจำลำดับของรายการที่เพิ่มในอ็อบเจกต์พจนานุกรม เมื่อวนซ้ำในพจนานุกรมที่เรียงลำดับ รายการจะถูกส่งคืนตามลำดับที่เพิ่มคีย์ในครั้งแรก
>>> from collections import OrderedDict >>> D = {5:'fff', 3:'ttt', 1:'ooo',4:'bbb', 2:'ddd'} >>> OrderedDict(D.items()) OrderedDict([(5, 'fff'), (3, 'ttt'), (1, 'ooo'), (4, 'bbb'), (2, 'ddd')])
นอกจากนี้เรายังต้องใช้ sorted() ฟังก์ชั่นที่เรียงลำดับองค์ประกอบใน iterable ในลำดับที่ระบุ ฟังก์ชันรับฟังก์ชันเป็นอาร์กิวเมนต์ซึ่งใช้เป็นคีย์สำหรับการเรียงลำดับ เนื่องจากเราตั้งใจจะจัดเรียงพจนานุกรมบนคีย์ เราจึงนำองค์ประกอบที่ 0 ของ tuple เป็นคีย์สำหรับการเรียงลำดับ
>>> D = {5:'fff', 3:'ttt', 1:'ooo',4:'bbb', 2:'ddd'} >>> OrderedDict(sorted(D.items(), key = lambda t: t[0])) OrderedDict([(1, 'ooo'), (2, 'ddd'), (3, 'ttt'), (4, 'bbb'), (5, 'fff')])
วัตถุ OrderedDict สามารถแยกวิเคราะห์เป็นวัตถุพจนานุกรมทั่วไปได้
>>> D1 = dict(OrderedDict(sorted(D.items(), key = lambda t: t[0]))) >>> D1 {1: 'ooo', 2: 'ddd', 3: 'ttt', 4: 'bbb', 5: 'fff'}