CodeBlanks Logo Icon CodeBlanks

Dict comprehension

{k: v for ...} ile dict comprehension'ı öğrenirsin.

Dict comprehension

Dict comprehension, bir dict'i tek satırda oluşturmanın kısa yoludur:

squares = {n: n * n for n in [1, 2, 3]}
# {1: 1, 2: 4, 3: 9}

Yapı: {anahtar: deger for değişken in liste}. Filtre eklemek için sona if koşul yazılabilir. Bu, klasik döngüden daha kısa ve okunabilirdir.

Aynı anahtar ikinci kez gelirse son değer önceki üzerine yazılır.

Filtreli dict comprehension

Dict comprehension'a if ekleyerek çiftleri filtreleyebilirsin:

even_squares = {n: n * n for n in [1, 2, 3, 4] if n % 2 == 0}
# {2: 4, 4: 16}

Bu, list comprehension'daki filtre mantığıyla aynıdır: sadece koşulu sağlayan elemanlar sonuca girer.

Büyük veri setlerinde bu yöntem çok kısa ve hızlıdır.

Uygulama Kareler sözlüğü yaz

squares değişkenine, [1, 2, 3, 4] listesindeki her n için n: n * n çiftlerini tutan bir dict comprehension ata. Sonra print(squares) yazdır.

Başlangıç kodu

main.py
# Dict comprehension ile kareler

Örnek çözüm

main.py
squares = {n: n * n for n in [1, 2, 3, 4]}
print(squares)

Beklenen çıktı

{1: 1, 2: 4, 3: 9, 4: 16}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Dict comprehension'i tamamla

Soru
squares = {n: n * ____ for n in [1, 2, 3]}
Cevap
squares = {n: n * n for n in [1, 2, 3]}

Açıklama: n * n her n için karesini verir.

2 {n: n * 2 for n in [1, 2, 3]} ne üretir?

  • [2, 4, 6]
  • {2, 4, 6}
  • {1: 2, 2: 4, 3: 6} Doğru cevap
  • (1, 2, 3)

Açıklama: Her n iki katına çıkar: {1: 2, 2: 4, 3: 6}.

3 Comprehension türlerini eşleştir

Kavram Anlamı
[...] Liste
(...) Tuple/Generator
{...} Set/Dict
{k: v} Dict

Başlangıç bölümündeki tüm dersler