Özet - List comprehension
- Python kursu
- Başlangıç
- Ders 64/116
- 5 dk
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şuleklenir - 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
# Çiftlerin karesini comprehension ile hesaplaÖrnek çözüm
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
# Dict comprehension ve sum birlikteÖrnek çözüm
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
biggest = max(n * n for n in [____])
biggest = max(n * n for n in [5])
Açıklama: [1, 2, 3, 4, 5] listesinde en büyük kare 25'tir.