辞書のリストとして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}
私はfirebase経験がないので、この答えは、この特定の使用では役に立たない可能性があります。
あなたは辞書は順序を保持していない理由として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?
Dictはあなたに注文を保証することはできません。どのようにしてFirebaseからデータを取得するのですか? firebaseからデータを取得している間にキーをリストに保存してみてください –