6 - Sözlükler, Kümeler ve Yerleşik Fonksiyonlar
2024
{}) ile tanımlanırlar.keys(): Sözlükteki tüm anahtarları döndürür.values(): Sözlükteki tüm değerleri döndürür.items(): Sözlükteki tüm anahtar-değer çiftlerini döndürür.get(anahtar, varsayılan_değer): Belirtilen anahtarın değerini döndürür. Anahtar yoksa, varsayılan değeri döndürür.pop(anahtar, varsayılan_değer): Belirtilen anahtara karşılık gelen değeri sözlükten çıkarır ve döndürür. Anahtar yoksa, varsayılan değeri döndürür.update(diger_sozluk): Sözlüğü, başka bir sözlükteki anahtar-değer çiftleriyle günceller.print(ogrenci.get("bolum", "Bilgi Yok")) # Çıktı: Bilgi Yok
print(ogrenci.pop("yas", 0)) # Çıktı: 20
print(ogrenci) # Çıktı: {'ad': 'Ahmet', 'soyad': 'Yılmaz'}
ogrenci.update({"bolum": "Bilgisayar Mühendisliği", "not_ortalamasi": 3.5})
print(ogrenci)
# Çıktı: {'ad': 'Ahmet', 'soyad': 'Yılmaz', 'bolum': 'Bilgisayar Mühendisliği', 'not_ortalamasi': 3.5}popitem(): Python 3.7 ve sonrasında son girilen öğeyi döner ve siler. Boş sözlükte KeyError hatası verir.setdefault(): setdefault() metodu, bir sözlükte belirli bir anahtarı kontrol edip, bu anahtar mevcutsa ilgili değeri döner, yoksa sözlüğe bu anahtarı ekleyip ona bir varsayılan değer atar.bilgiler = {"isim": "Ahmet", "yas": 30}
sonuc = bilgiler.setdefault("isim", "Mehmet")
print(sonuc) # Çıktı: Ahmet
print(bilgiler) # Çıktı: {"isim": "Ahmet", "yas": 30}
sonuc = bilgiler.setdefault("meslek", "Mühendis")
print(sonuc) # Çıktı: Mühendis
print(bilgiler) # Çıktı: {'isim': 'Ahmet', 'yas': 30, 'meslek': 'Mühendis'}fromkeys(): Verilen bir iterable dan yeni bir sözlük oluşturmak için kullanılır.copy(): Sözlüğün yüzeysel (shallow) bir kopyasını oluşturur.clear(): Verilen bir sözlüğü temizler.copy() ve Yüzeysel Kopyalamacopy() metodu yüzeysel (shallow) kopyalama yapar.
Eğer sözlük içinde liste gibi başka değiştirilebilir nesneler varsa, bu iç nesnelerin kopyası değil, referansı kopyalanır. Bu durumda, kopyalanan sözlükteki liste değiştiğinde orijinal sözlükteki liste de değişir.
data = {"id": 1, "notlar": [80, 90]}
data_copy = data.copy()
# Kopyalanan sözlükteki listeyi değiştirelim:
data_copy["notlar"].append(100)
# Orijinal sözlük de etkilendi!
print(data) # Çıktı: {'id': 1, 'notlar': [80, 90, 100]}
print(data_copy) # Çıktı: {'id': 1, 'notlar': [80, 90, 100]}copy modülündeki copy.deepcopy() fonksiyonu gerekir.in ve not in Operatörleriin: Bir anahtarın sözlükte olup olmadığını kontrol eder.not in: Bir anahtarın sözlükte olup olmadığını kontrol eder.{}) ile tanımlanırlar veya set() fonksiyonu kullanılarak oluşturulabilirler.{} ile oluşturulur: bos_sozluk = {}set() fonksiyonu kullanılmalıdır: bos_kume = set()in ve not in Operatörleriin: Bir elemanın kümede olup olmadığını kontrol eder.not in: Bir elemanın kümede olup olmadığını kontrol eder.add(eleman): Kümeye yeni bir eleman ekler (zaten varsa, hiçbir şey yapmaz).remove(eleman): Belirtilen elemanı kümeden siler (yoksa, KeyError hatası verir).discard(eleman): Belirtilen elemanı kümeden siler (yoksa, hata vermez).union(diger_kume): İki kümenin birleşimini döndürür.intersection(diger_kume): İki kümenin kesişimini döndürür.difference(diger_kume): İlk kümenin, ikinci kümede olmayan elemanlarını içeren bir küme döndürür.Python’da yerleşik olarak bulunan birçok fonksiyon, veri yapılarını işlemek ve matematiksel işlemler yapmak gibi işlemleri oldukça kolaylaştırır.
Bu fonksiyonlardan bazıları liste, tuple gibi dizilerin elemanlarını toplama, sıralama, minimum veya maksimum değerlerini bulma gibi işlemleri sağlar.
sum(): Bir dizinin (liste, tuple gibi) sayısal elemanlarını toplar.
max():min():len(): Bir iterable ın (liste, tuple, string vb.) eleman sayısını döndürür.sorted(): Bir diziyi sıralı bir şekilde döndürür. Orijinal diziyi değiştirmez.reversed(): Bir diziyi tersten sıralanmış şekilde döndürür. Ancak orijinal diziyi değiştirmez.all(): Verilen dizideki tüm elemanlar True değerinde ise True döner. Aksi halde False döner.any(): Verilen dizide en az bir eleman True ise True döner.enumerate(): Bir iteratable ı numaralandırarak döner, her bir öğe ile birlikte indeksini verir.meyveler = ["elma", "armut", "muz"]
for indeks, meyve in enumerate(meyveler):
print(f"{indeks}: {meyve}")0: elma
1: armut
2: muz
zip(): birden fazla iterable’ı (örneğin, listeler, demetler) aynı anda ele alarak bu iterablelerin her birinden sırayla bir eleman alıp, bu elemanları birleştirerek tuple’lar oluşturan bir fonksiyondur.list)tuple)dict)set)İstenenler:
Programınızın çıktısı mutlaka bir sözlük olmalıdır.
Bu sözlükte, metindeki her bir benzersiz kelime anahtar (key) olarak yer almalı.
O kelimenin metin içinde kaç kez geçtiği ise o anahtarın değeri (value) olmalıdır.
İstenen Çıktı:
{'elma': 3, 'armut': 2, 'çilek': 1}
ürünler = [
{"ad": "Laptop", "fiyat": 25000, "kategori": "Elektronik"},
{"ad": "Klavye", "fiyat": 750, "kategori": "Elektronik"},
{"ad": "Kahve", "fiyat": 150, "kategori": "Gıda"},
{"ad": "Defter", "fiyat": 80, "kategori": "Kırtasiye"},
{"ad": "Mouse", "fiyat": 450, "kategori": "Elektronik"}
]