Koşul Ekleme
Coddy'nin Python Journey'sinin Logic & Flow bölümünün bir parçası — ders 52 / 78.
Koşullu mantık eklediğinizde liste kapsamları (list comprehensions) daha da güçlü hale gelir. Bu, belirli koşullara göre öğeleri filtreleyerek ve dönüştürerek mevcut listelere dayalı yeni listeler oluşturmanıza olanak tanır.
Bir liste kapsamına (list comprehension) koşul eklemek için kullanılan söz dizimi şöyledir:
new_list = [expression for item in iterable if condition]Söz diziminin açıklaması aşağıdadır:
new_list: Oluşturulacak olan yeni liste.
expression:new_listiçine dahil edilecek değer. Bu,itemöğesinin değiştirilmiş bir versiyonu olabilir.
for item in iterable:iterable(örneğin bir liste, demet veya aralık) içindeki her bir öğe üzerinde yinelenen bir döngü.
item: Döngüde işlenen mevcut öğe.
if condition: Mevcutitem'ınnew_list'e dahil edilip edilmeyeceğini belirleyen bir filtredir.expression, yalnızcaconditionTrueolduğunda değerlendirilir.
İşte bir örnek:
numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# Çıktı: [2, 4, 6]Bu örnekte, liste kapsamı (list comprehension), numbers listesinden her bir n elemanını alarak ve yalnızca çiftse (yani, n % 2 == 0) dahil ederek evens adında yeni bir liste oluşturur.
Görev
KolayBir sayı listesi olan numbers'ı argüman olarak alan filter_and_square adında bir fonksiyon oluşturun. Fonksiyon, orijinal listedeki sadece pozitif sayıların karelerini içeren yeni bir liste oluşturmak için bir liste kapsamı (list comprehension) kullanmalıdır. Fonksiyon bu yeni listeyi döndürmelidir.
Kopya kağıdı
Koşullu mantığa sahip liste kapsamları (list comprehensions), öğeleri belirli koşullara göre filtrelemenize ve dönüştürmenize olanak tanır:
new_list = [expression for item in iterable if condition]expression: Yeni listeye dahil edilecek değerfor item in iterable: Her bir öğe üzerinde döngü kurunif condition: Öğenin dahil edilip edilmeyeceğini belirleyen filtre
Örnek - çift sayıları filtreleme:
numbers = [1, 2, 3, 4, 5, 6]
evens = [n for n in numbers if n % 2 == 0]
print(evens)
# Çıktı: [2, 4, 6]Kendin dene
def filter_and_square(numbers):
# Kodu buraya yazınBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Logic & Flow bölümündeki tüm dersler
1Değişken Keşfi
SabitlerÇoklu Değişken AtamalarıDeğişken TakasıYer Tutucu DeğişkenlerSayıları YuvarlamaListe Tür Dönüşümü4Rehber Uygulaması
Menüyü GörüntüleKişi Ekle7Kümeler Bölüm 2
Matematiksel İşlemler Bölüm 1Matematiksel İşlemler Bölüm 2Özet - Hazine AvıAlt Kümeler ve Üst KümelerKümeler Üzerinde YinelemeÖzet - Turnuva Takipçisi10Temel List Comprehension Yapıları
SözdizimiBasit Listeler OluşturmaKoşul EklemeVeri Toplulaştırma KullanımıÖzet - Liste EviÖzet - Özgürlük Elementleri13Envanter Yönetim Sistemi
Projeye Genel BakışÖğe Ekle2Sözlükler Bölüm 1
Sözlük Nedir?Sözlük OluşturmaDeğerlere ErişmeSözlükleri DeğiştirmeÖzet - Tarif Yöneticisi5İleri Seviye Karar Yapıları
Ternary OperatörüÜyelik KontrolleriKimlik KontrolleriGirintileme HatalarıÖzet - Tatil Filtresi8Öğrenci Kayıt Yöneticisi
Projeye Genel BakışÖğrenci Ekle11İleri Seviye Fonksiyonlar
Birden Fazla Değer DöndürmeLambda Fonksiyonları Bölüm 1Lambda Fonksiyonları Bölüm 2Tekrar Görevi - Lambda ile SıralamaÖzyinelemeli Fonksiyonlar Bölüm 1Özyinelemeli Fonksiyonlar Bölüm 2Tekrar - İç İçe Listeleri Toplama14Yüksek Mertebeden Fonksiyonlar
Map FonksiyonuFilter FonksiyonuÖzet - E-posta DoğrulayıcıÖzet - Sayı İşleyici3Sözlükler Bölüm 2
Sözlük Metotlarıİç İçe SözlüklerAnahtar KontrolüSözlüklerde DöngülerÖzet - Frekans Sayacı9İleri Düzey Veri Toplulaştırma
Toplam KullanımıMinimum ve Maksimumu BulmaVerileri Verimli SıralamaÖzet - Dictionary Sıralayıcı