collections.OrderedDict
Sınıfı kullanırken biraz sorun yaşıyorum . Ahududu Pi için Debian dağıtım Raspbian Python 2.7 kullanıyorum. Bir metin-macera için karşılaştırma (yan yana) için iki sözlük yazdırmaya çalışıyorum. Doğru bir şekilde karşılaştırmak için sipariş gereklidir. Ne denesem deneyim, sözlükler her zamanki gibi düzenlenmemiş şekilde yazdırılır.
RPi üzerinde yaptığım zaman:
import collections
ship = {"NAME": "Albatross",
"HP":50,
"BLASTERS":13,
"THRUSTERS":18,
"PRICE":250}
ship = collections.OrderedDict(ship)
print ship
# OrderedDict([('PRICE', 250), ('HP', 50), ('NAME', 'Albatross'), ('BLASTERS', 13), ('THRUSTERS', 18)])
Açıkçası doğru olmayan bir şey var çünkü fonksiyon çağrısını yazdırıyor ve anahtarları ve değer gruplarını iç içe bir listeye koyuyor ...
Bilgisayarımda benzer bir şey çalıştırarak aldım:
import collections
Joe = {"Age": 28, "Race": "Latino", "Job": "Nurse"}
Bob = {"Age": 25, "Race": "White", "Job": "Mechanic", "Random": "stuff"}
#Just for clarity:
Joe = collections.OrderedDict(Joe)
Bob = collections.OrderedDict(Bob)
print Joe
# OrderedDict([('Age', 28), ('Race', 'Latino'), ('Job', 'Nurse')])
print Bob
# OrderedDict([('Age', 25), ('Race', 'White'), ('Job', 'Mechanic'), ('Random', 'stuff')])
Bu sefer düzenli, ama diğer şeyleri de basmıyor olmalı değil mi? (Listeye koymak ve işlev çağrısını göstermek.)
Hatamı nerede yapıyorum? Python'un pi versiyonu ile ilgisi olmamalı çünkü sadece Linux versiyonu.
OrderedDict
alfasayısal anahtar sırasına göre değil, kampanya siparişine göre sıralanır.