我從firebase中檢索數據作爲字典列表。當我打印清單時,它的順序不一樣。Python字典隨機輸出項目
例如:
print(list(mydictionary.keys())[0])
這0元件總是不同,打印是給不同的輸出。我想在數據庫中以相同順序打印,或者當我首先將數據作爲列表進行打印時,使其相同。可能嗎?
我從firebase中檢索數據作爲字典列表。當我打印清單時,它的順序不一樣。Python字典隨機輸出項目
例如:
print(list(mydictionary.keys())[0])
這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]))
我想你想要什麼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}
我有火力沒有經驗,所以這個答案可以在這個特定的使用是無益的。
如果你想維持秩序,用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?
字典無法向您保證訂單。你如何準確地從Firebase獲取數據?嘗試將密鑰存儲在列表中,同時從Firebase獲取數據 –