2012-04-29 21 views
6

oluştururken sıralama otomatik devre dışı bırakma:piton: ben bu durum için yardıma ihtiyaç sözlüğü

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

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

yüzden bile ben geçen '333' girmediniz zaman, ben listelenen bu '333' var yazdırıldığında sözlüğün sonu. neden bu 'sözlük' otomatik sıralama yapıyor? ve nasıl devre dışı bırakılır? Siparişi düzeltmek için yeniden sıralamak için bir fonksiyon yaratabilirim. ama istediğim bu değil, sadece veriyi girdiğimde sipariş gibi çıktı almak ve çıktı almak istiyorum. İyi bir açıklama var mı ve herhangi bir çözüm var mı?

+0

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

+0

Büyük olasılıkla bir 'OrderedDict' kullanmak istiyorsunuz. –

+0

Thanx guyz, neden bu sorunu aldığımı açıklıyor. şerefe. – andio

cevap

20

Bu sıralama değil. dict hiç sipariş edilmediğinden, anahtar sırasını hiçbir şekilde etkileyemezsiniz. 2.7 ve 3.1+ 'de collections.OrderedDict var, ayrıca 2.4-2.6 için standalone module da var.

+0

+1: Cevabımı bunun lehine sildim. – Johnsyweb

+0

havalı. orderdict aradığım şey. Çok teşekkürler. – andio

+0

@andio anwser'i kabul et – wRAR

1

Bir sözlükte depolanan öğeler inaktif düzende yoktur. Basıldıkları sıra, anahtarların her biri için ve sözlükteki diğer öğeler için tümüyle tutarlı değerlerdir.

+0

Bilgi için çok fazla Thanx. – andio

İlgili konular