3

重複の可能性:
Python が私の辞書をそのように順序付けているのはなぜですか?

なぜこの辞書を繰り返すのか

d = {'tors':None,
     'head':None,
     'armr':None,
     'arml':None,
     'legl':None,     
     'legr':None}

for k in d.keys():
    print k

キーを異なる順序で出力します。

head
legl
armr
arml
tors
legr
4

2 に答える 2

6

Pythondictではハッシュ マップとして実装されており、キーの順序を保証することはできません。ドキュメントから

CPython 実装の詳細: キーと値は任意の順序でリストされます。これはランダムではなく、Python 実装によって異なり、辞書の挿入と削除の履歴に依存します。

注文を続ける必要がある場合は、collections.OrderedDict代わりに使用してください。

于 2012-10-25T11:07:19.830 に答える
1

これは仕事をするはずです:

import collections

ordered_d = collections.OrderedDict([('banana', 3),('apple',4),('pear', 1),('orange', 2)])
for k in ordered_d.keys():
    print k

結果:

banana
apple
pear
orange
于 2012-10-25T12:04:39.287 に答える