Veri Bilimi İçin Python Notları-10: Python’da Dictionary Değişkeni

V

1. Python’da Dictionary (Dict) Değişkeni

Liste tipi değişkenlerin dördüncüsü “dictionary” değişkenleri aşağıda gösterildiği gibi süslü parantezlerle “{}” ifade edilir.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022}
print(myDict)

#Daha okunabilir olması için şu şekilde de ifade edilebilir.
myDict = {
"Marka": "Volvo", 
"Model": "S60", 
"Yıl": 2022
}
print(myDict)
  

Dictionary nesnesinin elemanları yukarıda gösterildiği gibi değer çiftlerinden oluşur. Örneğin “Marka”: ”Volvo” dictionary değişkenin bir elamanıdır. “Marka” key adı (anahtar adı), “Volvo” ise key değeri (anahtar değeri) olarak adlandırılabilir.

Dict değişkenlerinin elemanları sıralanamaz ve tekrar edemez. Bununla birlikte bir dict değişkeninde aynı elemandan birden fazla bulunabilir.

# Yorum satırlarını kademeli olarak kaldırınız ve hataları görmek için bölüm bazında çalıştırınız.
'''
#Bu bölümde hata göreceksiniz (sıralanamaz)
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022}
myDict.sort()
print(myDict) #Sonuç: AttributeError: AttributeError: 'dict' object has no attribute 'sort'
'''

#Değiştirilebilir 
#Not: Eğer "remove" metodu kullanırsanız hata göreceksiniz. dict nesnesinde "remove" metodu tanımlı değildir.
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022}
myDict["Yıl"] = 2012
print(myDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2012}

'''
#Tekrar eden değer olamaz (Ancak hata vermeyecek, tekrar eden değeri diğerinin üzerine yazacaktır.)
# Aşağıdaki örnek "Model" key adı iki kez kullanılmış, sonuca ise ikincisin key değeri olan "S40" değerini yazdırmıştır.
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "Model": "S40"}
print(myDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S40', 'Yıl': 2022}

'''  

Bir dict değişkeninin eleman sayısı “len” metodu ile elde edilebilir.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022}
print(len(myDict)) #Sonuç: 3
  

Not: myDict değişkeninin eleman sayısının 6 değil 3 olduğuna dikkat ediniz. Dict nesnesinde eleman çiftleri olduğu için her eleman çifti bir eleman olarak kabul edilir.

Bir dict değişkeni birbirinden farklı tipte veriler içerebilir.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True, "Renk" :["Gri", "Siyah", "Mavi"]}
print(myDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2022, 'İkinci El': True, 'Renk': ['Gri', 'Siyah', 'Mavi']}
print(type(myDict)) #Sonuç: <class 'dict'>
  

2. Python’da Dict Elemanlarına Erişmek (get, keys, values, items metotları)

Dict değişkeninden herhangi bir elemana erişmek için aşağıda gösterildiği gibi “köşeli parantez içinde key adı” kullanılabilir.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
print(myDict["Marka"]) #Sonuç: Volvo
print(myDict["Model"]) #Sonuç: S60
print(myDict["Yıl"]) #Sonuç: 2022
print(myDict["İkinci El"]) #Sonuç: True
  

Yukarıdaki sonuçlara aşağıda gösterildiği gibi “get” metodunu kullanarak da ulaşabilirsiniz.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
print(myDict.get("Marka")) #Sonuç: Volvo
print(myDict.get("Model")) #Sonuç: S60
print(myDict.get("Yıl")) #Sonuç: 2022
print(myDict.get("İkinci El")) #Sonuç: True  

Not: “get” metodunda key adlarının köşeli parantez içinde değil, normal parantez içinde belirtildiğine dikkat edin.

Dict değişkeninin tüm key adlarına “list” değişkeni tipinde erişmek için aşağıda gösterildiği gibi “keys” metodunu kullanabilirsiniz.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
x = myDict.keys()
print(x) #Sonuç: dict_keys(['Marka', 'Model', 'Yıl', 'İkinci El'])

Dict değişkeninin “keys” metodunu, dict değişkeninin key adlarında bir değişiklik yaptığınızda, yaptığınız değişikliklerin uygulanıp uygulanmadığını kontrol etmek amacıyla kullanabilirsiniz.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
x = myDict.keys()
#Değişiklik yapmadan önce
print(x) #Sonuç: dict_keys(['Marka', 'Model', 'Yıl', 'İkinci El'])

myDict["Renk"] = "Mavi" #Yeni bir key ekliyoruz.
#Değişiklik yaptıktan sonra
print(x) #Sonuç: dict_keys(['Marka', 'Model', 'Yıl', 'İkinci El', 'Renk'])

Dict değişkeninin tüm key değerlerine “list” değişkeni tipinde erişmek için aşağıda gösterildiği gibi “values” metodunu kullanabilirsiniz.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
x = myDict.values()
print(x) #Sonuç: dict_values(['Volvo', 'S60', 2022, True])

Dict değişkeninin “values” metodunu, dict değişkeninin key değerlerinde bir değişiklik yaptığınızda, yaptığınız değişikliklerin uygulanıp uygulanmadığını kontrol etmek amacıyla kullanabilirsiniz.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
x = myDict.values()
#Değişiklik yapmadan önce
print(x) #Sonuç: dict_values(['Volvo', 'S60', 2022, True])

myDict["Renk"] = "Mavi"
#Değişiklik yaptıktan sonra
print(x) #Sonuç: dict_values(['Volvo', 'S60', 2022, True, 'Mavi'])

Dict değişkeninin tüm key değerlerine “list” değişkeni içinde “tuple” tipinde erişmek için aşağıda gösterildiği gibi “items” metodunu kullanabilirsiniz.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
x = myDict.items()
print(x) #Sonuç: dict_items([('Marka', 'Volvo'), ('Model', 'S60'), ('Yıl', 2022), ('İkinci El', True)])

Yukarıda “ “list” değişkeni içinde “tuple” tipinde” ifadesinin anlaşılması güç olabilir. Ancak mantığı çok basittir. Dict değişkenleri, elemanlarının her birinde key adı ve key değeri olmak üzere bir değer çifti içerir. Yukarıdaki örnekte gösterildiği gibi her bir değer çiftinin elemanları “tuple” içinde, her değer çiftinin kendisi (her dict elemanı) ise “list” içinde belirtilmiş oluyor.

Dict değişkeninin “items” metodunu, dict değişkeninin key değerlerinde bir değişiklik yaptığınızda yaptığınız değişikliklerin uygulanıp uygulanmadığını kontrol etmek amacıyla kullanabilirsiniz.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
x = myDict.items()
#Değişiklik yapmadan önce
print(x) #Sonuç: dict_items([('Marka', 'Volvo'), ('Model', 'S60'), ('Yıl', 2022), ('İkinci El', True)])

myDict["Model"] = "S40"
#Değişiklik yaptıktan sonra
print(x) #Sonuç: dict_items([('Marka', 'Volvo'), ('Model', 'S40'), ('Yıl', 2022), ('İkinci El', True)]) 

3. Python’da Bir Değeri Dict Elemanları İçinde Kontrol Etmek (if koşulu ve in metodu)

Bir değeri/elemanı dict değişkeninin elemanları içinde bulunup bulunmadığını kontrol etmek için “if” koşulu ile birlikte “in” metodu kullanılabilir.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
x = "Marka"
if x in myDict:
    print("Evet,", x, "myDict değişkeninin bir elemanıdır.") # Sonuç: Evet, Marka myDict değişkeninin bir elemanıdır.
else:
    print("Hayır,", x, "myDict değişkeninin bir elemanı değildir.")

print("___________\n")


myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
x = "Renk"
if x in myDict:
    print("Evet,", x, "myDict değişkeninin bir elemanıdır.")
else:
    print("Hayır,", x, "myDict değişkeninin bir elemanı değildir.")  # Sonuç: Hayır, Renk myDict değişkeninin bir elemanı değildir.
  

4. Python’da Dict Elemanlarını Değiştirmek (update metodu)

Dict değişkenlerinin elemanları yukarıda gösterildiği gibi değiştirilebilir. Ayrıca “update” metodu kullanılarak da aşağıda gösterildiği gibi değiştirilebilir.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
myDict["Yıl"] = 2012
print(myDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2012, 'İkinci El': True}

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
myDict.update({"Yıl": 2006})
print(myDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2006, 'İkinci El': True}

5. Python’da Dict Değişkenine Eleman Eklemek

Dict değişkenine eleman eklemek için yukarıda açıklanan yöntemler aşağıda gösterildiği gibi kullanılabilir.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
myDict["Yakıt"] = "Benzin"
print(myDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2022, 'İkinci El': True, 'Yakıt': 'Benzin'}

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
myDict.update({"Yakıt": "Dizel"})
print(myDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2022, 'İkinci El': True, 'Yakıt': 'Dizel'} 

6. Python’da Dict Değişkeninden Eleman Silmek (pop, popitem, clear metotları)

Bir dict değişkeninden belirli bir elemanı kaldırmak/silmek için aşağıda gösterildiği gibi “pop” metodu key adı ile birlikte kullanılabilir.

#pop metodu ile key adını kullanarak bir eleman çiftini silebilirsiniz.
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
myDict.pop("Yıl")
print(myDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'İkinci El': True} 

Bir dict değişkeninden son pozisyondaki elemanı kaldırmak/silmek için aşağıda gösterildiği gibi “popitem” metodu kullanılabilir.

#popitem metodu ile son eleman çiftini silebilirsiniz. (Python sürümleri arasında farklılık gösterebilir)
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
myDict.popitem()
print(myDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2022} 

Not: “popitem” metodu ile silinen/kaldırılan elemanın sırası Python sürümleri arasında farklılık gösterebilir.

“popitem” metodunun dict değişkeninden kaldırdığı elemanı aşağıda gösterildiği gibi görüntüleyebilirsiniz.

#popitem metodunun kaldırdığı elemanı öğrenmek
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
x = myDict.popitem()
print(x) #Sonuç: ('İkinci El', True)

Bir dict değişkenin (değişkenin kendisini değil) tüm elemanlarını silmek için aşağıda gösterildiği gibi “clear” metodu kullanılabilir.

#myDict değişkeninin sadece elemanlarının tümünü silmek
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
myDict.clear() #Sadece tüm elemanlar silinecek; değişkenin kendisi silinmeyecek

#myDict değişkeninin tümüyle silinip silinmediğinin kontrolü.
try: myDict
except NameError: myDict = None
if myDict is None:
    print("myDict değişkeni artık yok.") 
else:
    print("myDict değişkeni var.") #Sonuç: myDict değişkeni var.

7. Python’da Dict Değişkeninin Kendisini Silmek (del metodu)

Bir dict değişkenin tüm elemanları ile birlikte kendisini de silmek için aşağıda gösterildiği gibi “del” metodu kullanılabilir.

#myDict değişkenini tümüyle silmek; sadece elemanlarının tümünü değil kendisini de silmek.
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
del myDict

#myDict değişkeninin tümüyle silinip silinmediğinin kontrolü.
try: myDict
except NameError: myDict = None
if myDict is None:
    print("myDict değişkeni artık yok.") #Sonuç: myDict değişkeni artık yok.
else:
    print("myDict değişkeni var.")

Bir dict değişkeninden belirli bir pozisyondaki eleman çiftini kaldırmak/silmek için aşağıda gösterildiği gibi “del” metodu da kullanılabilir.

#del metodu ile belirli bir eleman çiftini silebilirsiniz.
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
del myDict["Marka"]
print(myDict) #Sonuç: {'Model': 'S60', 'Yıl': 2022, 'İkinci El': True}

8. Python’da Dict Elemanlarına Döngülerle Erişmek(for döngüsü)

Bir dict değişkeninin sadece key adlarına döngülerle erişmek için aşağıda gösterildiği gibi “for” döngüsü “in” metodu ile birlikte kullanılabilir.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
for x in myDict:
  print(x)
#Sonuç:
#Marka
#Model
#Yıl
#İkinci El

print("___________\n")

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
for x in myDict.keys():
  print(x)
#Sonuç:
#Marka
#Model
#Yıl
#İkinci El

Bir dict değişkeninin sadece key değerlerine döngülerle erişmek için aşağıda gösterildiği gibi “for” döngüsü “in” metodu ile birlikte kullanılabilir.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
for x in myDict:
  print(myDict[x])
#Sonuç:
#Volvo
#S60
#2022
#True

print("___________\n")

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
for x in myDict.values():
  print(x)
#Sonuç:
#Volvo
#S60
#2022
#True

Bir dict değişkeninin key adlarına ve değerlerine döngülerle erişmek için aşağıda gösterildiği gibi “for” döngüsü “in” metodu ile birlikte kullanılabilir.

myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
for x, y in myDict.items():
  print(x, y)
#Sonuç:
#Marka Volvo
#Model S60
#Yıl 2022
#İkinci El True

9. Python’da Dict Değişkenleri İçin Döngü Sentaksını Sadeleştirmek (for döngüsü)

Dict değişkenlerinde aşağıda gösterildiği gibi döngü sentaksları kısaltılabilir.

#Bu döngüyü aşağıdaki şekilde kısaltabiliriz
#myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
#for x, y in myDict.items():
#  print(x, y)
#Sonuç:
#Marka Volvo
#Model S60
#Yıl 2022
#İkinci El True

#Kısaltılmış form
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
{print(x, y) for x, y in myDict.items()}
#Sonuç:
#Marka Volvo
#Model S60
#Yıl 2022
#İkinci El True

10. Python’da Dict Değişkenlerini Kopyalamak (copy, dict metotları)

Dict değişkenleri “copy” ve “dict” metotları kullanılarak çoğaltılabilir.

#copy metodu
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
newDict = myDict.copy()
print(newDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2022, 'İkinci El': True}

#dict metodu
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
newDict = dict(myDict)
print(newDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2022, 'İkinci El': True}

#Eşitleme metodu
myDict = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022, "İkinci El": True}
newDict = myDict
print(newDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2022, 'İkinci El': True}

11. Python’da Dict Değişkenlerini Birleştirmek

Dict değişkenleri aşağıda gösterildiği gibi iki farklı şekilde birleştirilebilir.

#Üç farklı dict değişkeninin dördüncü bir dict değişkeninde birleştirilmesi
Otomobil1 = {"Marka": "Volvo", "Model": "S60", "Yıl": 2022}
Otomobil2 = {"Marka": "Audi", "Model": "A6", "Yıl": 2021}
Otomobil3 = {"Marka": "Mercedes", "Model": "C200", "Yıl": 2020}
myDict = {"Otomobil1": Otomobil1, "Otomobil2": Otomobil2, "Otomobil3": Otomobil3}
print(myDict) #Sonuç: {'Otomobil1': {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2022}, 'Otomobil2': {'Marka': 'Audi', 'Model': 'A6', 'Yıl': 2021}, 'Otomobil3': {'Marka': 'Mercedes', 'Model': 'C200', 'Yıl': 2020}}

print("___________\n")

#dict değişkeni içinde dict değişkenlerinin yuvalandırılması
myDict = {"Otomobil1" : {"Marka": "Volvo", "Model": "S60", "Yıl": 2022}, 
          "Otomobil2" : {"Marka": "Audi", "Model": "A6", "Yıl": 2021},
          "Otomobil3" : {"Marka": "Mercedes", "Model": "C200", "Yıl": 2020}}
print(myDict) #Sonuç: {'Otomobil1': {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2022}, 'Otomobil2': {'Marka': 'Audi', 'Model': 'A6', 'Yıl': 2021}, 'Otomobil3': {'Marka': 'Mercedes', 'Model': 'C200', 'Yıl': 2020}}

12. Python’da Farklı Liste Tipi Değişkenlerden Dict Değişkeni Oluşturmak (fromkeys metodu)

“list”, “tuple” gibi farklı liste tipi değişkenlerden aşağıda gösterildiği gibi dict değişkenleri oluşturabilirsiniz.

#Tüm eleman çiftlerinin değerini 0 yapmak
myList = ["Marka", "Model", "Yıl"]
x = 0
myDict = dict.fromkeys(myList, x)
print(myDict) #Sonuç: {'Marka': 0, 'Model': 0, 'Yıl': 0}

print("___________\n")

#Tüm eleman çiftlerinin değerini none yapmak
myList = ["Marka", "Model", "Yıl"]
myDict = dict.fromkeys(myList)
print(myDict) #Sonuç: {'Marka': None, 'Model': None, 'Yıl': None}

print("___________\n")
#Tüm eleman çiftlerinin değerini farklı yapmak
myList = ["Marka", "Model", "Yıl"]
myTupleVal = ("Volvo", "S60", 2022)
myDict ={}
i = 0
for a in myList:
    myDict[a] = myTupleVal[i]
    i = i + 1
print(myDict) #Sonuç: {'Marka': 'Volvo', 'Model': 'S60', 'Yıl': 2022}

 

 

İshak Kutlu, Veri Bilimi İçin Python Notları

Yorum Yap

İshak Kutlu

Veri & Otomasyon Uzmanı

Kurumsal iş akışlarını düzenleyen veri odaklı otomasyon sistemleri ve makine öğrenmesi tabanlı çözümler geliştirir. Gerçek operasyonel süreçler için ölçeklenebilir ve izlenebilir yapılar tasarlar.

YouTube   YouTube   YouTube   YouTube