2017-07-13 70 views
0

我從firebase中檢索數據作爲字典列表。當我打印清單時,它的順序不一樣。Python字典隨機輸出項目

例如:

print(list(mydictionary.keys())[0]) 

這0元件總是不同,打印是給不同的輸出。我想在數據庫中以相同順序打印,或者當我首先將數據作爲列表進行打印時,使其相同。可能嗎?

+0

字典無法向您保證訂單。你如何準確地從Firebase獲取數據?嘗試將密鑰存儲在列表中,同時從Firebase獲取數據 –

回答

0

使用功能sorted()

s = {0:1,h:t,1:1,10:2,2:1} for key,val in sorted(s.items()): print key, val

或在您的情況

print(sorted(list(mydictionary.keys())[0]))

0

我想你想要什麼OrderedDict對象,因爲它們被加入其中保存鍵的順序。在python2.7 +,這是collections模塊的一部分:

>>> from collections import OrderedDict 
>>> a = OrderedDict() 
>>> a['blah'] = 4 
>>> a['other'] = 5 
>>> a['another'] = 6 
>>> print(a) 
OrderedDict([('blah', 4), ('other', 5), ('another', 6)]) 
>>> print(dict(a)) 
{'another': 6, 'blah': 4, 'other': 5} 

我有火力沒有經驗,所以這個答案可以在這個特定的使用是無益的。

0

如果你想維持秩序,用OrderedDict

from collections import OrderedDict 

keys = list("1234") 
values = ["one", "two", "three", "four"] 

order_preserving_dict = OrderedDict(zip(keys, values)) 

至於爲何字典沒有維持秩序,我可以解釋,但其更好地你看看Why is the order in dictionaries and sets arbitrary?