我有这本词典
sr = {'DTW':'CNT','FWA':'CNT','GRR':'CNT','IND':'CNT','MKE':'CNT','MLI':'CNT','MSP':'CNT','OMA':'CNT','ORD':'CNT','SBN':'CNT','STL':'CNT','BDL':'EST','BOS':'EST','BWI':'EST','CLE':'EST','CMH':'EST','CVG':'EST','EWR':'EST','IAD':'EST','JFK':'EST','MDT':'EST','PHL':'EST','PIT':'EST','ROC':'EST','ABQ':'CNT','AUS':'CNT','DEN':'CNT','DFW':'CNT','ELP':'CNT','IAH':'CNT','LRD':'CNT','MCI':'CNT','MFE':'CNT','MSY':'CNT','OKC':'CNT','SAT':'CNT','TUL':'CNT','ATL':'EST','BNA':'EST','CLT':'EST','JAX':'EST','MCO':'EST','MEM':'EST','MIA':'EST','RDU':'EST','RIC':'EST','SDF':'EST','SJU':'EST','TPA':'EST','ANC':'WST','HNL':'WST','LAS':'WST','LAX':'WST','PDX':'WST','PHX':'WST','RNO':'WST','SAN':'WST','SEA':'WST','SFO':'WST','SLC':'WST','SMF':'WST','TUS':'WST'}
for s, r in sr.iteritems():
print s, r
但是在打印时从
开始打印JFK EST
MKE CNT
为什么呢?为什么打印不是用DTW盯着?
答案 0 :(得分:10)
因为dict的实现是一个hashmap或hash table,所以它不会按顺序存储元素。
来自docs
CPython实现细节:密钥 和值以任意方式列出 非随机的订单会有所不同 跨Python实现,和 取决于字典的历史 插入和删除。
如果订单很重要,您应该使用OrderedDict
答案 1 :(得分:1)
PyMOTO OrderedDict教程提供了有关OrderedDict()的好例子。