2012-04-29 14 views
6

を作成するときに、自動ソートを無効にするには:のpython:私はこのような場合のために助けを必要とどのように辞書

m={} 
m[1]=1 
m[333]=333 
m[2]=2 

# Result: 
{1: 1, 2: 2, 333: 333} 

ので、私は「333」は、私はこの「333」で最後にリストしまっを入力しなかった場合でも、それを印刷するときは、辞書の最後。なぜこの「辞書」は自動ソートをしているのですか?どのようにそれを無効にする?私は、注文を修正するために並べ替える機能をcreataに与えることができます。しかし、それは私が欲しいものではありません、私は単に印刷して、データを入力するときに注文と同じように出力の注文を得るだけです。良い説明があり、解決策はありますか?

+0

http://stackoverflow.com/questions/1872329/stored-python-dictionary-entries-in-the-order-they-are-pushed – shiva

+0

あなたはおそらく 'OrderedDict'を使いたいと思うでしょう。 –

+0

Thanx guyz、なぜこの問題があるのか​​説明しています。乾杯。 – andio

答えて

20

ソートされていません。 dictはまったく注文されていないため、キーの順序には何も影響しません。 2.7と3.1+にはcollections.OrderedDictがあり、2.4-2.6にはstandalone moduleもあります。

+0

+1:私の答えを削除しました。 – Johnsyweb

+0

cool。注文書が私が探しているものです。どうもありがとう。 – andio

+0

@andio anwserを受け入れるならば – wRAR

1

辞書に格納された項目には、固有の順序はありません。それらがプリントアウトされる順序は、各キーおよび辞書内の他の項目のハッシュ値まで完全に下がっています。

+0

Thanxは情報のためにたくさんあります。 – andio

関連する問題