İç içe comprehension
- Python kursu
- Başlangıç
- Ders 62/116
- 4 dk
İç içe comprehension'ları öğrenirsin.
İç içe comprehension
Bir comprehension içerisine birden fazla for yan tümcesi yazılabilir. Bu, iç içe döngülere karşılık gelir:
pairs = [(a, b) for a in [1, 2] for b in [3, 4]]
# [(1, 3), (1, 4), (2, 3), (2, 4)]Ilk for dış döngü, ikinci for iç döngüdür. Sonuç, her (a, b) çiftini sırayla listeler.
İç içe comprehension karmasiklastiginda okunabilirlik zorlaşır; o zaman klasik döngü tercih edilebilir.
Matristen liste
İç içe comprehension, bir matrisin tüm elemanlarını düz bir listeye çevirmek (flatten) için elverislidir:
matrix = [[1, 2], [3, 4]]
flat = [n for row in matrix for n in row]
# [1, 2, 3, 4]önce row matristen alınır, sonra n o row'dan alınır. Bu, çok kısa bir yazımdır.
Uygulama Çarpım tablosu üret
products değişkenine, a [1, 2] ve b [3, 4] listelerinin tüm çiftleri için a * b hesaplayan iç içe bir comprehension ata. Sonra print(products) yazdır.
Başlangıç kodu
# Ic ice comprehension ile carpimlarÖrnek çözüm
products = [a * b for a in [1, 2] for b in [3, 4]]
print(products)Beklenen çıktı
[3, 4, 6, 8]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İç içe parçaları eşleştir
| Kavram | Anlamı |
|---|---|
for a in [1, 2] |
Dış döngü |
for b in [3, 4] |
İç döngü |
(a, b) |
Ifade |
[...] |
Sonuç listesi |
2 İç içe comprehension'i tamamla
flat = [n for row in matrix for ____ in row]
flat = [n for row in matrix for n in row]
Açıklama: İç döngü n'i row'dan alır.
3 [(a, b) for a in [1, 2] for b in [3]] ne üretir?
- [(1, 3)]
- [(2, 3)]
- [(1, 3), (1, 4), (2, 3), (2, 4)]
- [(1, 3), (2, 3)] Doğru cevap
Açıklama: a=1,b=3 ve a=2,b=3 çiftleri oluşur.