CodeBlanks Logo Icon CodeBlanks

Özet - List comprehension

Comprehension ve generator expression'ı birleştirerek bir sayı işleyici yazarsın.

Özet - List comprehension

Bu grupta comprehension, filtreleme, dict/set, iç içe ve generator konularını işledik.

  • Liste: [ifade for n in liste]
  • Filtre: ... if koşul eklenir
  • Dict: {anahtar: deger for ...}
  • Set: {ifade for ...}
  • Generator: (ifade for ...)

Şimdi iki görev bu kavramları birlestiriyor.

Uygulama Çiftlerin kareleri

even_squares değişkenine, [1, 2, 3, 4, 5, 6] listesinden çift olanların karesini hesaplayan bir comprehension ata. Sonra print(even_squares) yazdır.

Başlangıç kodu

main.py
# Çiftlerin karesini comprehension ile hesapla

Örnek çözüm

main.py
even_squares = [n * n for n in [1, 2, 3, 4, 5, 6] if n % 2 == 0]
print(even_squares)

Beklenen çıktı

[4, 16, 36]

Uygulama Sözlük ve generator birlikte

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

Başlangıç kodu

main.py
# Dict comprehension ve sum birlikte

Örnek çözüm

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

Beklenen çıktı

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

Soru ve cevaplar

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

1 Hangi comprehension [6, 8] sonucunu verir?

  • [n * 2 for n in [1, 2, 3, 4]]
  • [n * 2 for n in [1, 2, 3, 4] if n > 2] Doğru cevap
  • [n + 2 for n in [1, 2, 3, 4] if n > 2]
  • [n for n in [6, 8]]

Açıklama: 3 ve 4 alınır, ikiye katlaninca [6, 8] olur.

2 Generator ile max tamamla

Soru
biggest = max(n * n for n in [____])
Cevap
biggest = max(n * n for n in [5])

Açıklama: [1, 2, 3, 4, 5] listesinde en büyük kare 25'tir.

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