Python Kavramaları: Listeleme, Dikte Etme ve Ayarlama Kavramları

Daha temiz, daha hızlı Python yazın. Pratik örnekler, filtreleme koşulları ve iç içe geçmiş döngülerle ana liste, sözlük ve küme kavramaları.

Editör'de deneyin

Genel Bakış

Kavramalar Python'un en sevilen özelliklerinden biridir ve mevcut yinelenebilirlerden yeni koleksiyonlar (listeler, sözlükler ve kümeler) oluşturmak için kısa ve yüksek düzeyde okunabilir bir sözdizimi sunar. Kavramalar, çok satırlı "for" döngüleri yazmak ve öğeleri manuel olarak eklemek yerine, aynı dönüşümü, filtrelemeyi ve atamayı tek, etkileyici bir kod satırında gerçekleştirmenize olanak tanır.

Liste anlamaları en yaygın değişkendir ve "[yinelenebilir if koşulundaki öğe için ifade]" olarak yapılandırılmıştır. Temelde Python kavramaları C'ye yakın hızda çalışacak şekilde optimize eder ve döngü temeldeki yorumlayıcı tarafından işlendiğinden çoğu zaman eşdeğer manuel "for" döngülerinden daha iyi performans gösterir. Santigrat sıcaklık listesini Fahrenheit'e dönüştürmek veya kullanıcı kayıtları listesinden belirli anahtarları çıkarmak gibi hızlı dönüşümler için idealdirler.

Python, listelerin ötesinde Sözlük ve Küme anlamalarını da destekler. Kıvrımlı ayraçlar ve anahtar/değer çiftleriyle (örneğin, `{key: value for x in iterable}`) tanımlanan bir sözlük anlayışı, eşleme çiftlerini ters çevirmek veya meta verileri ayrıştırmak için oldukça faydalıdır. Set anlamaları, kopyaları otomatik olarak kaldırarak benzersiz koleksiyonlar oluşturur. Kavramalar inanılmaz derecede güçlü olsa da geliştiriciler bunları aşırı karmaşık hale getirmekten kaçınmalıdır; Eğer bir kavrama iç içe geçmiş döngüler veya karmaşık koşullar gerektiriyorsa, geleneksel "for" döngüsünün okunması ve bakımı genellikle daha kolaydır.

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

Liste dönüşümlerini, koşullu filtrelemeyi ve girişleri eşleyerek sözlük oluşturmayı gösterir.

comprehensions.py
Editör'de deneyin
numbers = [1, 2, 3, 4, 5, 6]

# List comprehension with filter (even squares)
even_squares = [x**2 for x in numbers if x % 2 == 0]

# Set comprehension (unique word lengths)
words = ["python", "java", "ruby", "python"]
word_lengths = {len(w) for w in words}

# Dictionary comprehension (number: square)
square_map = {n: n**2 for n in numbers[:4]}

print(f"Even squares: {even_squares}")
print(f"Unique lengths: {word_lengths}")
print(f"Square mapping: {square_map}")
Terminal Çıkışı
Even squares: [4, 16, 36]
Unique lengths: {4, 6}
Square mapping: {1: 1, 2: 4, 3: 9, 4: 16}

Adım Adım Uygulama

  • Günlüklerden boş değerleri veya geçersiz verileri filtreleme
  • API verilerini anahtar/değer veri eşlemeleriyle eşleme
  • Veritabanı satırlarını hızlı bir şekilde basit listeler halinde biçimlendirme

Sıkça Sorulan Sorular

Anlamalar normal döngülerden daha mı hızlı?

Evet, çoğu durumda daha hızlıdırlar çünkü yineleme Python yorumlayıcısı içindeki optimize edilmiş C kodu tarafından gerçekleştirilir.

Her zaman anlama yöntemini kullanmalı mıyım?

Hayır. Kodun okunabilirliği Python'un önceliğidir. Anlamanın iç içe mantık içermesi veya bir veya iki satırdan uzun olması durumunda geleneksel döngü tercih edilir.

İlgili Konular

Önerilen Python Kaynakları

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