4

Python Dictionary を使用してプログラムを作成しました。この単純なプログラムでは、辞書のメモリ構造を理解できません。そして、その時に辞書からデータを取得すると、データはシーケンスで取得されません。

Digit = {1 : One, 2: Two,3: Three,4: Four,5: Five,6: Six,7: Seven,8: Eight,9: nine,0: Zero}
print Digit

そのような出力が得られますTwo,Three,Five,Four。順番に並べたい場合は、どうすればよいですか?

4

2 に答える 2

4

Python では、辞書は任意に並べ替えられます。順序は保証されていないため、それに依存するべきではありません。順序付けされたコレクションが必要な場合は、OrderedDictまたはリストを使用します。

キーの順序でディクショナリにアクセスする場合は、まずキーのリストを取得し、それを並べ替えてからステップ実行します。

keys = Digit.keys()
keys.sort()

for i in keys:
   print Digit[i]
于 2013-07-31T06:41:21.187 に答える
1

順序付けられたデータを絶対に保存したい場合は、Burhan Khalid が回答で提案したように OrderedDict を使用できます。

>>> from collections import OrderedDict
>>> Digit = [(1, "One"), (2, "Two"), (3, "Three"), (4, "Four"), (5, "Five"), (6, "Six"), (7, "Seven"), (8, "Eight"), (9, "Nine"), (0, "Zero")]
>>> Digit = OrderedDict(Digit)
>>> Digit
OrderedDict([(1, 'One'), (2, 'Two'), (3, 'Three'), (4, 'Four'), (5, 'Five'), (6, 'Six'), (7, 'Seven'), (8, 'Eight'), (9, 'Nine'), (0, 'Zero')])
>>> for k,v in Digit.items():
...     print k, v
... 
1 One
2 Two
3 Three
4 Four
5 Five
6 Six
7 Seven
8 Eight
9 Nine
0 Zero
于 2013-07-31T07:00:20.297 に答える