Sıralı bir sözlüğü (OD) ilk verilerin sırasını korumak için başlatmanın doğru yolu nedir?
from collections import OrderedDict
# Obviously wrong because regular dict loses order
d = OrderedDict({'b':2, 'a':1})
# An OD is represented by a list of tuples, so would this work?
d = OrderedDict([('b',2), ('a', 1)])
# What about using a list comprehension, will 'd' preserve the order of 'l'
l = ['b', 'a', 'c', 'aa']
d = OrderedDict([(i,i) for i in l])
Soru:
Bir olacak
OrderedDict
küpe veya listeleri ya da vb listelerinin listesinin başlığın bir dizilerini listesi ya da başlığın sırasını korumak başlatma (2 & 3, örneğin yukarıda) anda geçmiş?OrderedDict
Bir emrin gerçekten devam edip etmediğini doğrulamaya nasıl devam edilir? Bir yanadict
tahmin edilemez bir düzeni vardır ne benim test vektörler Neyse ki bir dict öngörülemeyen siparişle aynı başlangıç siparişi varsa? Örneğin,d = OrderedDict({'b':2, 'a':1})
yazmak yerined = OrderedDict({'a':1, 'b':2})
yazarsam, yanlış bir şekilde siparişin korunduğu sonucuna varabilirim. Bu durumda,dict
a'nın alfabetik olarak sıralandığını öğrendim , ancak bu her zaman doğru olmayabilir. Bir veri yapısının düzeni koruyup korumadığını doğrulamak için bir karşı örnek kullanmanın güvenilir yolu nedir? Test vektörlerini biri bozulana kadar tekrar tekrar denemek yerine?
PS Ben sadece burada bırakacağız referans "Python'un işlev çağrısı anlambilim geçiş nedeniyle OrderedDict yapıcı ve güncelleme () yöntemini hem anahtar kelime argümanlar kabul eder, ancak bunların sırası kaybolur anahtar kelime argümanlar düzenli sırasız sözlük kullanılarak":
PPS: Umarım gelecekte OrderedDict kwargs sırasını da koruyacaktır (örnek 1): http://bugs.python.org/issue16991