search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
364 gösterim
Python kategorisinde 6.2k puan

1 cevap

0 oy

Python'da list comprehension ve generator expression kullanarak listeleri veya jeneratörleri (generator) hızlı bir şekilde oluşturabilirsiniz. Her ikisi de mevcut bir liste, dizi veya başka bir veri yapısından yeni bir liste veya jeneratör oluşturmanıza olanak tanır. İşte her iki yaklaşımın kullanımı:

  • List Comprehension (Liste Anlama)

List comprehension, bir dizi veya liste oluşturmak için kullanılır ve sonuç bir liste döner. List comprehension'ın temel yapısı şu şekildedir:

new_list = [expression for item in iterable if condition]

- `expression`: Her öğe için yeni liste öğesini hesaplayan bir ifadedir.
- `item`: İterasyon sırasındaki mevcut öğeyi temsil eder.
- `iterable`: İşlem yapmak istediğiniz mevcut veri yapısını temsil eder (örneğin, liste, dizi, demet vb.).
- `condition` (isteğe bağlı): Her öğenin listeye eklenip eklenmeyeceğini kontrol eden bir koşuldur.

Örnek List Comprehension:

numbers = [1, 2, 3, 4, 5]
squared_numbers = [x**2 for x in numbers if x % 2 == 0]
print(squared_numbers)  # Sonuç: [4, 16]
  • Generator Expression (Jeneratör Anlama)

Generator expression, bir jeneratör oluşturmak için kullanılır ve sonuç bir jeneratör nesnesidir. Generator expression'ın temel yapısı şu şekildedir:

generator = (expression for item in iterable if condition)

Aynı tanımlar list comprehension için de geçerlidir, ancak bu durumda bir jeneratör oluşturulur. Jeneratörler, bellekte daha az yer kaplar ve öğeleri gerektiğinde tek tek üretir, bu nedenle büyük verilerle çalışırken daha verimli olabilirler.

Örnek Generator Expression:

numbers = [1, 2, 3, 4, 5]
squared_numbers_generator = (x**2 for x in numbers if x % 2 == 0)
for num in squared_numbers_generator:
    print(num)
# Sonuç: 4 (satır atladı), 16

List comprehension ve generator expression, Python'da veri dönüşümü ve filtreleme işlemlerini hızlı ve okunabilir bir şekilde gerçekleştirmenize yardımcı olur. Hangi yaklaşımın kullanılacağı, ihtiyaçlarınıza ve çalıştığınız veri setinin boyutuna bağlı olarak değişebilir. Büyük veri kümeleriyle çalışırken jeneratörler daha avantajlı olabilir.

6.2k puan

İlgili sorular

0 oy
1 cevap 417 gösterim
417 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 356 gösterim
356 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 323 gösterim
323 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu
0 oy
0 cevap 124 gösterim
124 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 168 gösterim
168 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu