2011-07-15 11 views
-1

可能性の重複:
Ordering in Python (2.4) dictionaryPythonの辞書記憶

私は別のものにdictをコピーしようとしましたが、ソート方法インチ私は次の問題を抱えています。

mydict = {'carl':40,   
      'alan':2,   
      'bob':1,   
      'danny':3} 
d1={} 
for key in sorted(mydict): 
    d1[key]=mydict[key] 

私はd1を印刷するとき、それは示しています

{'bob': 1, 'danny': 3, 'carl': 40, 'alan': 2} 

それはソート順ではなく、なぜ?

答えて

5

ディクテーションには順序がありません。 OrderedDictを使用する必要があります。

+0

このように、デフォルトではどのような順序が必要ですか?なぜそれはスタックのようなfuctioningではないのですか? –

+0

注文は実装定義です。 – jpm

+2

順序はランダムと見なされるべきである - dictはハッシュテーブルのようであり、アクセスの速度(O(1))のために最適化される。 –

0

Python辞書はソートされません。 collections.OrderedDict

0

dictは、キーが最初に挿入された順序を記憶していないためです。 OrderedDictが必要です。