2013-10-09 86 views
-2
self.PARSE_TABLE={"$_ERROR":self.WEEK_ERRORS,"$_INFORM":self.WEEK_INFORM,"$_REDIR":self.WEEK_REDIRECTS,"$_SERVER_ERROR":self.WEEK_SERVER_ERROR,"$_BYTES":self.WEEK_BYTES,"$_HITS":self.WEEK_HITS} 


for j in self.PARSE_TABLE: 
      print j 
      break 

當我在我的python上運行這第一個元素我得到的是S_REDIR有人可以解釋爲什麼嗎?Python字典與變量數組鍵

回答

0

詞典不保留順序。您從迭代中獲得的順序可能不是您插入元素的順序。這是您通過密鑰近乎即時查找值所支付的價格。簡而言之,您所看到的行爲是正確的和預期的,甚至可能因Python解釋器的運行而異。

0

它正常的行爲。內部字典和使用hash codes設置。如果你想要命令鍵使用self.PARSE_TABLE.keys.sort()。你也可以使用collection library的OrderedDict。

0

字典默認情況下按照自己的方便順序存儲所有的鍵,而不是我們給出的順序。

如果鍵的順序應是,你可以使用OrderedDict從Python版本3.0

P.S.來實現我不認爲排序鍵可以幫助保留所給的順序。

+0

cpython2.7也有'OrderedDict'。 – iMom0

+0

感謝您的更正:) –