Python'da Liste Anlama Nasıl Kullanılır?

Python'da liste kavramalarını nasıl kullanacağınızı öğrenin. Kısa döngüler yazın, koşullu filtreler uygulayın ve temiz görsel sözdizimiyle matrisler oluşturun.

Bu Çözümü Editör'de deneyin

Genel Bakış

Liste anlama Python'un en popüler ve ikonik özelliklerinden biridir. Mevcut yinelenebilir bir listeden (liste, aralık veya tanımlama grubu gibi) yeni bir liste oluşturmak için kısa, anlamlı ve yüksek düzeyde okunabilir bir sözdizimi sunar. Çok satırlı "for" döngülerini değiştirmenize ve başlatma ifadelerini tek bir kod satırıyla listelemenize olanak tanır.

Bir liste anlamanın temel sözdizimi "[yinelenebilir öğe için ifade]" şeklindedir. Temel olarak, bu sözdizimi Python'un uygulamasında son derece optimize edilmiştir ve bu da Python'un ".append()" kullanarak öğeleri ekleyen standart "for" döngülerinden daha hızlı çalışmasını sağlar. Matematiksel dönüşümleri uygulamak veya öğeleri değiştirmek için idealdir.

Liste anlamaları aynı zamanda "if" tümcelerini kullanan koşullu filtrelemeyi de destekleyerek öğeleri seçmeli olarak eklemenize olanak tanır (örneğin, "[x for x in data if x % 2 == 0]'). İnanılmaz derecede güçlü olmasına rağmen, liste anlamaları dikkatli kullanılmalıdır: Eğer anlamanız oldukça karmaşıksa veya iç içe geçmişse, okunabilirliği korumak için standart döngüler yazmak daha iyidir.

Kod ve Yürütme Çıkışı

Bu komut dosyası, temel liste anlamalarını, koşullarla filtrelemeyi ve dize değerlerini dönüştürmeyi gösterir.

list_comprehensions.py
Editör'de deneyin
# 1. Traditional for-loop way to build a list
squares_loop = []
for x in range(1, 6):
    squares_loop.append(x**2)
print("Loop squares:", squares_loop)

# 2. List comprehension way (same outcome)
squares_comp = [x**2 for x in range(1, 6)]
print("Comp squares:", squares_comp)

# 3. Filtering elements with an 'if' clause (even numbers only)
evens = [n for n in range(1, 11) if n % 2 == 0]
print("Even numbers:", evens)

# 4. String modifications using comprehensions
names = ["alice", "bob", "charlie"]
caps = [name.capitalize() for name in names]
print("Capitalized:", caps)
Terminal Çıkışı
Loop squares: [1, 4, 9, 16, 25]
Comp squares: [1, 4, 9, 16, 25]
Even numbers: [2, 4, 6, 8, 10]
Capitalized: ['Alice', 'Bob', 'Charlie']

Adım Adım Uygulama

  • Listede yakalamak istediğiniz döngü gövdesini ve ifadeyi tanımlayın.
  • Anlamayı [yinelenebilir öğe için ifade] olarak yapılandırın.
  • Öğeleri dinamik olarak filtrelemek için sonuna isteğe bağlı bir if koşulu ekleyin.

Sıkça Sorulan Sorular

Bir liste kavramasında if-else ifadelerini kullanabilir miyim?

Evet! if-else cümleciğini for döngüsünün önüne yerleştirin: [x if x > 0 else 0 for x in data].

Liste kavramaları ile oluşturucu ifadeler arasındaki farklar nelerdir?

Liste kavramaları köşeli parantezleri kullanır ve anında tam listeyi döndürür. Oluşturucu ifadeleri parantez kullanır ve büyük veri kümeleri için bellekten tasarruf sağlayan bir tembel oluşturucu nesnesi döndürür.

İlgili Konular

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.