Python List Comprehension

  • Konbuyu başlatan Konbuyu başlatan Hüseyin
  • Başlangıç tarihi Başlangıç tarihi

Hüseyin

Üye
Top Poster Of Month
Katılım
21 Ocak 2024
Mesajlar
164
Tepkime puanı
36
Puanları
28
Python programlama dilindeki en güçlü araçlardan biri olan liste kavrama konusuna değineceğiz. Liste anlama, kodunuzu düzene sokmanın ve daha okunabilir hale getirmenin yoludur. Ama önce, temel bilgilerle başlayalım.

Python'da Liste Nedir?

Python'da liste, sıralı ve değiştirilebilir öğelerden oluşan bir koleksiyondur. Bir listedeki öğeleri gerektiği gibi ekleyebilir, kaldırabilir veya değiştirebilirsiniz. Listeler, diğer listeler de dahil olmak üzere farklı türlerde öğeler içerebilir.

İşte bir Python liste örneği:

Python:
fruits = ['apple', 'banana', 'orange', 'kiwi']
Bu örnekte, fruits farklı meyvelerin adlarını içeren dört dizeden oluşan bir listedir. Örneğin indeksleme kullanarak listedeki öğelere tek tek erişebilirsiniz:
Python:
print(fruits[0]) # Output: 'apple'
Ayrıca, örneğin öğelerin bir alt kümesini ayıklamak için bir listeyi dilimleyebilirsiniz:
Python:
print(fruits[1:3]) # Output: ['banana', 'orange']
Şimdi, asıl olaya geçelim: list comprehension.

Python'da List comprehension Nedir?

List comprehension, Python'da liste oluşturmanın kısa ve zarif bir yoludur. Mevcut bir liste üzerinde yineleme yaparak, bir koşul uygulayarak ve isteğe bağlı olarak orijinal listedeki öğeleri değiştirerek yeni bir liste oluşturmanıza olanak tanır.

List comprehension Sözdizimi

List comprehension sözdizimi basittir. Aşağıdaki öğelerden oluşur:

Python:
new_list = [expression for item in iterable if condition]
Burada expression, yinelenebilir dosyadaki her öğeye uygulanan işlem veya fonksiyondur. item ise yinelenebilir dosyada üzerinde yinelenen öğedir. if deyimi isteğe bağlıdır ve belirli bir koşulu karşılamayan öğeleri filtrelemenize olanak tanır.
List Comprehension Neden Kullanılır?

List comprehension, işlem yapmak için gereken satır sayısını azaltarak kodunuzu basitleştirebilir. Ayrıca, özellikle karmaşık işlemler veya iç içe döngülerle çalışırken kodunuzu daha okunabilir ve anlaşılması daha kolay hale getirebilir.

List Comprehension vs For Döngüleri

Python'da döngüler genellikle bir liste üzerinde yineleme yapmak ve her bir öğe üzerinde bir işlem gerçekleştirmek için kullanılır. Döngüler güçlü ve esnek olsalar da, özellikle karmaşık işlemlerle uğraşırken uzun ve okunması zor olabilirler.

List comprehension, aynı sonuçları tek bir kod satırında elde edebileceğiniz için döngülere göre daha kısa ve okunabilir bir alternatif sunar. Ayrıca, büyük veri kümeleriyle çalışırken liste kavrama döngülerden daha hızlı olabilir.

Dahili Fonksiyonlar ile List Comprehension

List comprehension'ın güçlü özelliklerinden biri de Python'un map(), reduce() ve filter() gibi yerleşik fonksiyonlarıyla birleştirilebilmesidir. Bu, verileriniz üzerinde yalnızca bir satır kodla karmaşık işlemler gerçekleştirmenize olanak tanır.

List Comprehension ile Dilimleme

List Comprehension, belirli bir koşulu karşılayan öğelerin bir alt kümesini seçerek bir listeyi de dilimleyebilir. Örneğin:
Python:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = [x for x in a if x % 2 == 0] # yalnızca çift sayıları seçer

List comprehension ile Koşullu İfadeler

List comprehension ayrıca, belirli bir koşulu karşılamayan öğeleri filtreleyerek verilerinize koşullu ifadeler uygulamanıza olanak tanır.

List comprehension ile IF Kullanma
Python:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = [x for x in a if x > 5] # yalnızca 5'ten büyük sayıları seçer

Liste Anlama ile IF..ELSE Kullanımı
Python:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = ['even' if x % 2 == 0 else 'odd' for x in a] # çift ve tek sayıları etiketler

List Comprehension ile ELIF Kullanımı

List Comprehension ayrıca elif deyimlerini de destekleyerek verilerinize birden fazla koşul uygulamanıza olanak tanır.
Python:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
b = ['even' if x % 2 == 0 else 'odd' if x % 2 != 0 else 'zero' for x in a] # çift, tek ve sıfır sayıları etiketler

List Comprehension vs. Map(), Reduce() ve Filter()

List Comprehension güçlü olsa da, her zaman bu iş için en iyi araç değildir. Bazı durumlarda, özellikle daha büyük veri kümeleriyle veya daha karmaşık işlemlerle çalışırken Python'un map(), reduce() ve filter() gibi yerleşik işlevlerini kullanmak daha uygun olabilir.

Map() bir listedeki her bir öğeye bir fonksiyon uygulayarak aynı uzunlukta yeni bir liste döndürür. Reduce(), bir listenin öğelerine bir işlev uygulayarak tek bir değer döndürür. Filter(), bir listenin öğelerine Boolean işlevi uygulayarak koşulu sağlayan öğelerden oluşan yeni bir liste döndürür.

LIST COMPREHENSION HAKKINDA DIKKAT EDILMESI GEREKENLER

List Comprehension güçlüdür, ancak her zaman bu iş için en iyi araç değildir. Bazen, bir for döngüsü veya Python'un yerleşik işlevlerinden biri daha uygun olabilir.
List Comprehension kullanırken kodunuzu okunabilir ve sürdürülebilir tutmak çok önemlidir. Açıklayıcı değişken adları kullanın ve karmaşık ifadelerden veya iç içe döngülerden kaçının.
Son olarak, List Comprehension bellek kullanımına dikkat edin. Büyük bir veri kümesiyle çalışıyorsanız bunun yerine bir oluşturucu ifadesi kullanmayı düşünün.

Sonuç

Sonuç olarak, List Comprehension Python programlama dilinde karmaşık işlemler için kısa ve okunabilir kod oluşturmanıza olanak tanıyan güçlü bir araçtır. List Comprehension ile, istediğiniz sonuca ulaşmak için gereken kod satırlarının sayısını azaltabilir, kodunuzu daha verimli ve okunması daha kolay hale getirebilirsiniz. Bir sonraki projenizde deneyin ve kodunuzu nasıl basitleştirebileceğini ve bir Python geliştiricisi olarak hayatınızı nasıl kolaylaştırabileceğini görün.
 
Geri
Üst