อัปเดต:ตั้งแต่ Python 3.7 มีการรักษาลำดับการแทรกดังนั้นคุณไม่จำเป็นต้องใช้OrderedDict
ที่นี่ คุณสามารถใช้วิธีการด้านล่างด้วยวิธีปกติdict
เปลี่ยนเป็นเวอร์ชั่น 3.7:คำสั่งพจนานุกรมรับประกันว่าจะเป็นคำสั่งแทรก พฤติกรรมนี้เป็นรายละเอียดการใช้งานของ CPython จาก 3.6
แหล่ง
Python 3.6 และก่อนหน้า *
หากคุณกำลังพูดถึงเรื่องปกติdict
"ปุ่มแรก" นั้นไม่ได้มีความหมายอะไรเลย ปุ่มไม่ได้เรียงในแบบที่คุณสามารถพึ่งพาได้ หากคุณทำซ้ำมากกว่าdict
คุณจะไม่ได้รับ"banana"
สิ่งแรกที่คุณเห็น
หากคุณต้องการเก็บสิ่งต่าง ๆ ตามลำดับคุณต้องใช้OrderedDict
พจนานุกรมที่ไม่ใช่พจนานุกรมธรรมดา
import collections
prices = collections.OrderedDict([
("banana", 4),
("apple", 2),
("orange", 1.5),
("pear", 3),
])
หากคุณต้องการเห็นกุญแจทั้งหมดตามลำดับคุณสามารถทำได้โดยวนซ้ำ ๆ
for k in prices:
print(k)
คุณสามารถเลือกใส่คีย์ทั้งหมดลงในรายการแล้วทำงานกับมันได้
ks = list(prices)
print(ks[0]) # will print "banana"
วิธีที่เร็วกว่าในการรับองค์ประกอบแรกโดยไม่สร้างรายการคือการเรียกnext
ใช้ตัววนซ้ำ สิ่งนี้ไม่ได้พูดคุยเป็นอย่างดีเมื่อพยายามรับnth
องค์ประกอบ
>>> next(iter(prices))
'banana'
* CPython รับประกันคำสั่งแทรกเป็นรายละเอียดการใช้งานใน 3.6