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
135 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 197 gösterim
197 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 190 gösterim
190 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 136 gösterim
136 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu
0 oy
0 cevap 61 gösterim
61 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 95 gösterim
95 gösterim 15 Ocak 2023 Python kategorisinde kenan 6.2k puan sordu