Evet, tüm yinelemeleri aynı siparişi kullanmak için garanti edilir.
Yapmadılarsa, bu, açıkça belgelendirilmesi gereken çok büyük bir istisna olurdu. Belgeler böyle istisnalar içermez.
Her zaman modül belgelerinin en üstünden bağlantılı olarak implementation'u kontrol edebilirsiniz. Tüm yöntem uygulamalarının, self
üzerinden yinelemeyi doğrudan veya iter(self)
veya list(self)
aracılığıyla kullandığını unutmayın; Tüm bu sırada anahtarları üreten OrderedDict.__iter__
yöntem ile beslenir: Örneğin
def __iter__(self):
'od.__iter__() <==> iter(od)'
# Traverse the linked list in order.
root = self.__root
curr = root[1] # start at the first node
while curr is not root:
yield curr[2] # yield the curr[KEY]
curr = curr[1] # move to next node
, OrderedDict.values()
yöntem değerlerine eşlemek için bu anahtar kullanır:
def values(self):
'od.values() -> list of values in od'
return [self[key] for key in self]
Evet. "OrderedDict - sipariş girişlerini hatırlayan dict alt sınıfı eklendi" – AndreyT
@AndreyT Öğeleri bildiğimi veya yinelemediğim soru, özellikle .keys() veya .values () yöntemleri hakkında – DhruvPathak
@ DhruvPathak: ve ne düşünüyorsun? olmayacaklar mı? anahtar/değer çiftleri girişlerdir. Anahtarların üzerinde yineleme, değerler veya öğeler aynı siparişi kullanmak zorundadır. Durum böyle değilse * çok * şaşırtıcıdır ve bir istisna olarak açık bir şekilde belgelenmelidir. Dokümantasyonda böyle bir istisna yoktur. –