CodeBlanks Logo Icon CodeBlanks

Comprehension temelleri

[x for x in xs] ile comprehension'ı öğrenirsin.

Comprehension temelleri

List comprehension (liste üretimi), bir listeyi kısa ve okunabilir biçimde oluşturmanın yoludur. Döngü ve append yerine tek satırda yazılır:

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

Yapı şöyledir: [ifade for değişken in liste]. ifade her eleman için hesaplanır ve sonuca eklenir. Bu, klasik for döngüsünden daha kısa ve daha hızlıdır.

Comprehension, okunabilirlik arttıkça tercih edilir; çok karmasiklastiginda döngü daha iyi olabilir.

Comprehension for döngüsünün yerine geçer

Aynı sonucu klasik for döngüsüyle de elde edebilirsin:

squares = []
for n in [1, 2, 3]:
    squares.append(n * n)

Comprehension bu üç satırı tek satıra indirir. Hangisini kullanacağına kişisel tercih ve okunabilirlik bağlıdır.

İç içe döngülerde comprehension karmasiklasabilir; o zaman for döngüsü tercih edilebilir.

Uygulama Ucle çarpan comprehension yaz

triples değişkenine, [1, 2, 3, 4] listesinin her elemanını 3 ile çarpan bir comprehension ata. Sonra print(triples) yazdır.

Başlangıç kodu

main.py
# Comprehension ile ucle carp

Örnek çözüm

main.py
triples = [n * 3 for n in [1, 2, 3, 4]]
print(triples)

Beklenen çıktı

[3, 6, 9, 12]

Soru ve cevaplar

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

1 Aşağıdakilerden hangisi [2, 4, 6] listesini üretir?

  • [x * 2 for x in [1, 2, 3]] Doğru cevap
  • [x for x in [2, 4, 6]]
  • [x + 2 for x in [1, 2, 3]]
  • [x * 2 for x in [2, 4, 6]]

Açıklama: [x * 2 for x in [1, 2, 3]] her elemanı ikiye katlar: [2, 4, 6].

2 Comprehension'i tamamla

Soru
doubles = [n * ____ for n in [1, 2, 3]]
Cevap
doubles = [n * 2 for n in [1, 2, 3]]

Açıklama: n * 2 ile her eleman ikiye katlanir.

3 Comprehension parçalarını eşleştir

Kavram Anlamı
[...] Liste üretimi
for Döngü kelimesi
ifade Her eleman için hesap
in Kaynak liste kelimesi

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