Sözlük, bir anahtar ve anahtara karşı gelen değerden oluşan bir yapıdır.
- Sözlükler genellikle bir veri parçası hakkında birden çok ayrıntıyı depolamak için kullanılır. Örneğin, bir sözlükte ürünler hakkında tüm bilgileri depolayabiliriz.
- Sözlük süslü parantez "{ }" içersinde bir anahtar ve değeri ile gösterilir.
- Anahtar ve değeri ":" ifadesi ile eşitlenir.
- Bir sözlük içersinde birden fazla anahtar/değer çifti olabilir.
- Anahtar değerleri sözlük içinde benzersiz olmalıdır. Ama değerleri dizeler, sayılar, listeler, demetler veya diğer sözlüklerden herhangi bir türden olabilir.
- Sözlük yapmak için örneğin; myDict={"anahtar1":"deger","anahtar2":"deger"...}
myDict={"sehir":"istanbul","plaka":34,"nufus":"15.46 Milyon"}
print(myDict)
Çıktı:
{'sehir': 'istanbul', 'plaka': 34, 'nufus': '15.46 Milyon'}
Oluşturulan yapının tipini görmek için;
myDict={"sehir":"istanbul","plaka":34,"nufus":"15.46 Milyon"}
print("Tipi:"+str(type(myDict)))
Çıktı:
Tipi:<class 'dict'>
Bir sözlükte bulunan anahtar kelimelere erişmek için "keys()" ifadesi kullanılır.
#Sözlük anahtar kelimeleri
myDict.keys()
Çıktı:
dict_keys(['sehir', 'plaka', 'nufus'])
Bir sözlükte bulunan anahtar kelimelere karşılık gelen değerler için "values()" ifadesi kullanılır.
#Sözlük anahtar kelimelerine karşılık gelen değerler
myDict.values()
Çıktı:
dict_values(['istanbul', 34, '15.46 Milyon'])
1.Sözlük elemanlarına erişim
Sözlükdeki elemanın anahtar kelimesini köşeli parantez "sözlük_adı[anahtar_kelime]" içersinde yazılarak erişilir.
myDict={"sehir":"istanbul","plaka":34,"nufus":"15.46 Milyon"}
print("Plaka:"+str(myDict["plaka"]))
Çıktı:
Plaka:34
2.Sözlük elemanlarını değiştirme/güncelleme
Sözlük elemanlarının anahtar değerleri yazılarak değerlerini değiştirebiliriz.
myDict={"personel":"enes","yas":32,"sehir":"ankara"}
myDict["personel"]="sefa"
print(myDict)
Çıktı:
{'personel': 'sefa', 'yas': 32, 'sehir': 'ankara'}
3.Sözlüğe eleman ekleme
Sözlüğe eleman eklemek için sözlük adı sonuna köşeli parantez yapılarak anahtar adını ve değerine eşitlenir.
myDict={"personel":"enes","yas":32,"sehir":"ankara"}
myDict["meslek"]="Müh."
print(myDict)
Çıktı:
{'personel': 'enes', 'yas': 32, 'sehir': 'ankara', 'meslek': 'Müh.'}
4.Sözlükten eleman kaldırma
Sözlükten eleman kaldırmak için "del sözlükAdı[kaldırılacak_öğe_anahtarı]" komutu kullanılır.
myDict={"personel":"enes","yas":32,"sehir":"ankara"}
del myDict["yas"]
print(myDict)
Çıktı:
{'personel': 'enes', 'sehir': 'ankara'}
5.Sözlüğün uzunluğu
Sözlük uzunluğunu bulmak için ".len()" komutu kullanılır.
myDict={"personel":"enes","yas":32,"sehir":"ankara"}
print("Sözlük uzunluğu:{0}".format(len(myDict)))
Çıktı:
Sözlük uzunluğu:3
6. Sözlük içersinde anahtar kelimeleri arama
- Sözlük anahtar kelimeleri içinde aramak istediğimiz anahtar kelimenin var olup olmadığını if-else döngüsü ile bulalım.
myDict={"personel":"enes","yas":32,"sehir":"ankara"}
if "personel" in myDict.keys(): #myDict adlı sözlük içerindeki anahtarların(keys) içinde(in) "personel" kelimesi var mı?
print("aranan anahtar kelime var")
else:
print("aranan anahtar kelime yok")
Çıktı:
aranan anahtar kelime var
- Sözlük içinde aramak istediğimiz değerin var olup olmadığını if-else döngüsü ile bulalım.
myDict={"personel":"ali","yas":32,"sehir":"ankara"}
if "personel" in myDict.values(): #myDict adlı sözlük içerindeki değerlerde(values) içinde(in) "ali" kelimesi var mı?
print("aranan anahtar kelime var")
else:
print("aranan anahtar kelime yok")
Çıktı:
aranan anahtar kelime yok
**Not: Bir sözlük için yapılabilecek başlıca özellikleri anlatmaya çalıştım, daha bir çok özelliği de bulunmaktadır. Detaylı bilgi alabileceğiniz yöntemler;
- 1.Yöntem: Değişkenin adını yazdıktan sonra nokta koyarak Tab tuşuna iki defa basarak önerilerden çıkan özellikleri inceleyebilirsiniz
- 2.Yöntem: Jupyter Notebook'a Nbextension yükleyerek otomatik olarak önerileri görebilirsiniz.
- 3.Yöntem: dir(sözlük_adı) yazarak özellikleri görebilirsiniz.
dir(myDict) #listenin aşağısında bulunan __**__ olmayan öğeleri kullanabilirsiniz.
Çıktı:
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']