การกระจายมาตรฐานของ 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 ตามลำดับที่ระบุ ฟังก์ชันรับฟังก์ชันเป็นอาร์กิวเมนต์ซึ่งใช้เป็นคีย์สำหรับการเรียงลำดับ เนื่องจากเราตั้งใจจะจัดเรียงพจนานุกรมตามค่าต่างๆ เราจึงนำองค์ประกอบที่ 1 ของ tuple เป็นกุญแจสำคัญในการจัดเรียง
>>> OrderedDict(sorted(D.items(), key = lambda t: t[1])) OrderedDict([(4, 'bbb'), (2, 'ddd'), (5, 'fff'), (1, 'ooo'), (3, 'ttt')])
วัตถุ OrderedDict สามารถแยกวิเคราะห์เป็นวัตถุพจนานุกรมทั่วไปได้
>>> D1 = dict(OrderedDict(sorted(D.items(), key = lambda t: t[1]))) >>> D1 {4: 'bbb', 2: 'ddd', 5: 'fff', 1: 'ooo', 3: 'ttt'}