Veri yapıları, verileri verimli bir şekilde depolayan ve yöneten herhangi bir programlama dilinin temel bileşenleridir. Python birçok yerleşik veri yapısı sağlar;.e., programcıların verimli uygulamalar oluşturmasına yardımcı olan listeler, demetler ve sözlükler. Python sözlükleri, verileri anahtar/değer çiftlerinde depolar. OrderedDict, dict sınıfının alt sınıfıdır ve içine eklenen anahtarların sırasını korur. Bu, dict ve OrderDict arasındaki tek ve tek farktır. dict, anahtarın sırasını korumaz.
OrderedDict, anahtar ekleme sırasını tutar ve OrderedDict'i yinelediğimizde, anahtarları aynı sırayla döndürür. Öte yandan, yineleme dict üzerinde yapıldığında, anahtarlar rastgele sırayla döndürülür. Ancak, sözlükler artık Python 3'te sıralanmıştır.6 ve üzeri sürümler ve değerleri eklendikleri sırayla döndürür. Collections modülünde OrderedDict sınıfı var. Bu nedenle, OrderedDict sınıfını kullanmak için önce koleksiyon modülünü içe aktarın. Bu makale Python OrderedDict'i örneklerle ayrıntılı olarak açıklamaktadır.
Örnekler
Python betiğimizde bir OrderedDict oluşturalım ve verileri anahtarlar ve değerler biçiminde ekleyelim. Items(), anahtarları ve değerleri döndüren yerleşik Python işlevidir.
#koleksiyon modülünü içe aktarmakoleksiyonları içe aktar
# OrderedDict oluşturma
my_dict = koleksiyonlar.OrderedDict()
my_dict["A"]=1
my_dict["B"]=2
my_dict["C"]=3
my_dict["D"]=4
#OrderDict aracılığıyla yinelenecek bir for döngüsü bildirme
benim için.öğeler():
yazdır(i)
Çıktı
Çıktıda, OrderedDict'in anahtarları ve değerleri, eklenenlerle aynı şekilde döndürdüğü görülebilir.
Şimdi bir öğrencinin başka bir OrderDict'ini oluşturalım ve öğrenci bilgilerini bunun içinde saklayalım.
#koleksiyon modülünü içe aktarmakoleksiyonları içe aktar
#öğrencinin OrderedDict'ini oluşturma
std_dict = koleksiyonlar.OrderedDict()
std_dict['name']='John'
std_dict['yaş']=23
std_dict['email']='[e-posta korumalı]'
std_dict['class']='BS'
#OrderDict aracılığıyla yinelenecek bir for döngüsü bildirme
std_dict içindeki ben için.öğeler():
yazdır(i)
Çıktı
Anahtarların değerlerini değiştirme
OrderedDict'in belirli anahtarının değerini değiştirebiliriz. Herhangi bir anahtarın değerini değiştirirsek, OrderDict'te anahtarların sırası aynı kalacaktır. Öğrenci OrderDict'teki yaş değerini değiştirelim.
#koleksiyon modülünü içe aktarmakoleksiyonları içe aktar
#öğrencinin OrderedDict'ini oluşturma
std_dict = koleksiyonlar.OrderedDict()
std_dict['name']='John'
std_dict['yaş']=23
std_dict['email']='[e-posta korumalı]'
std_dict['class']='BS'
print("Yaş değerini değiştirmeden önce tuşların sırası:")
#OrderDict aracılığıyla yinelenecek bir for döngüsü bildirme
std_dict içindeki ben için.öğeler():
yazdır(i)
#yaş değerini değiştirme
std_dict['yaş']=25
print("Yaş değerini değiştirdikten sonra tuşların sırası:")
std_dict içindeki ben için.öğeler():
yazdır(i)
Çıktı
Çıktı, belirli bir anahtarın değerini değiştirdiğimizde tuşların sırasının aynı kaldığını gösterir.
Değeri OrderedDict'ten silme
OrderDict'ten değerlerin silinmesi, tuşların sırasını değiştirmez. Belirli bir anahtarı silip yeniden eklersek, sonuna eklenecektir. buna bir örnek görelim. Öğrenci sözlüğünden 'yaş' anahtarını silip yeniden ekleyeceğiz.
#koleksiyon modülünü içe aktarmakoleksiyonları içe aktar
#öğrencinin OrderedDict'ini oluşturma
std_dict = koleksiyonlar.OrderedDict()
std_dict['name']='John'
std_dict['yaş']=23
std_dict['email']='[e-posta korumalı]'
std_dict['class']='BS'
print("Yaş değerini değiştirmeden önce tuşların sırası:")
#OrderDict aracılığıyla yinelenecek bir for döngüsü bildirme
std_dict içindeki ben için.öğeler():
yazdır(i)
#yaş anahtarını silme
del std_dict['yaş']
print("Yaş anahtarını sildikten sonra tuşların sırası:")
std_dict içindeki ben için.öğeler():
yazdır(i)
#yaş anahtarını ve değerini yeniden ekleme
std_dict['yaş']=23
print("Yaş anahtarını yeniden girdikten sonra tuşların sırası:")
std_dict içindeki ben için.öğeler():
yazdır(i)
Çıktı
Çıktıda, bir anahtarı yeniden yerleştirdiğimizde, sonuna eklendiği görülebilir.
Sonuç
OrderedDict, anahtarı sırayla düzenleyen ve eklendikleri sırada sırayı koruyan dict'in alt sınıfıdır. OrderedDict sınıfı, koleksiyon modülünün bir parçasıdır. Bu makale OrderedDict'i ve işlevselliğini örneklerle açıklar.