Python'da List Comprehension

by trustix


Eklenme Tarihi : 20 Aralık 2020 14:44 Views:     380



Python'da diğer programlama dillerinde olduğu gibi iteratif işlemler yapmak için genellikle döngüler kullanılmaktadır. Çünkü döngüler tekrarlanması gereken bir işlemi birkaç satır kod ile kolay bir şekilde yapılmasını sağlamaktadırlar.

Bazı durumlarda ise iteratif işlemler için Python'a özel olarak List Comprehension yapısı kurulmuştur. Bu yapı diğer programlama dillerinden çok aşina olabiliceğimiz bir yapı değildir. Ancak birçok farklı amaç için kullanılabilir olmaları, geliştiricileri fazla kod yazmaktan kurtarmaları, hızlı ve dinamik yapıları ile çok tercih edilen yapılardır. Burada örnekler üzerinden Python'daki List Comprehension yapısını anlamaya çalışacağız.

 

Python'da for döngüsü ile sayıların küpünü bulma

# Python'da döngü ile sayıların küpünü bulmak

"""
    Öncelikle List Comprehension yapısının anlaşılması için
    döngüler yardımı ile bir sayı dizisi ile ilgili
    işlemler yapalım. for döngüsü kullanarak bir sayı dizisinin
    küpünü bulalım.
"""

n_1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
k_1 = []

for n in n_1:
  k_1.append(n**3)

print(k_1)
# Output : [1, 8, 27, 64, 125, 216, 343, 512, 729]

 

 

Python'da List Comprehension ile sayıların küpünü bulma

# Python'da List Comprehension ile sayıların küpünü bulma


"""
    Yukarıda for döngüsü kullanarak yaptığımız işlemi
    daha kısa kod yazarak list comprehension ile yaptık.
"""


n_2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
k_2 = [n**3 for n in n_2]

print(k_2)
# Output: [1, 8, 27, 64, 125, 216, 343, 512, 729]

 

 

Yukarıdaki iki örnek döngüler ile  List Comprehension yapısı arasındaki farkı görmek için bir örnektir. Yazdığımı program ya da sistem ne kadar büyük olursa  List Comprehension yapısının işlevselliği o kadar belirgin olacaktır. Yine for döngüleri ile  List Comprehension yapısı arasındaki farkı anlamak için bir örnek yapalım.

 

Python'da for döngüsü ile 7'ye bölünebilen sayıları bulma

# Python'da for döngüsü ile 7'ye bölünebilen sayıları bulma

"""
    Python'da for döngüsü kullanarak bir listedeki
    sayısal değerler üzerinden işlem yapmayı amaçlıyoruz.
    0-100 aralığında bir sayı listesi oluşturuyoruz.
    Daha sonra for döngüsü yardımı ile 7'ye tam
    bölünebilen sayıları buluyoruz.
"""


liste_1  = [*range(100)]
liste_2 = []

# for döngüsü ile 7'ye bölünebilen sayıları bulma
for x in liste_1:
    if x % 7 == 0:
        liste_2.append(x)

print("0-100 Arasında 7 ile tam bölünebilen sayılar : ", liste_2)

# Output: 0-100 Arasında 7 ile tam bölünebilen sayılar :  [0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98]
  

 

 

 Python'da List Comprehension ile 7'ye bölünen sayıları bulma

 

#  Python'da List Comprehension ile 7'ye bölünen sayıları bulma

"""
    Yukarıda for döngüsü ile yaptığımız işlemin aynısını
    burada list Comprehension ile yapmış oluyoruz.
    Örneklerde görüldüğü gibi çok daha kullanışlı
    bir yapı karşımıza çıkıyor.
"""


liste_1 = [*range(100)]

liste_2 = [x for x in liste_1 if x % 7 == 0]

print('0-100 Aralığında 7 ile tam bölünen sayılar: ' , liste_2)

# Output: 0-100 Aralığında 7 ile tam bölünen sayılar:  [0, 7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98]

 

 

Python'da List Comprehension Örnekleri

 

#   Python'da List Comprehension Örnekleri

"""
    range() fonksiyonunu kullanarak belirli
    bir aralıkta bir sayı dizisi oluşturduk.
    Daha sonra  List Comprehension yapısını kullanarak
    listenin her elemanını 17 değeri ile çarptık.

"""


liste_3 = [*range(10,30,4)]
liste_4 = [e*17 for e in liste_3]
print(liste_4)

# Output: [170, 238, 306, 374, 442]
  
 

 

 

 

Python'da  List Comprehension yapısını ve ne kadar pratik bir kullanımı olduğunu örnekler üzerinden incelemeye çalıştık. Son bir örnek ile konuyu bitirelim.

 

#   Python'da List Comprehension Örnekleri

"""
    List Comprehension  yapısı ile bir
    listedeki string ifadelerden oluşan
    elemanların bütün harflerini
    büyük harf yaptık. Bu yapı hem
    fonksiyonel, hemen zaman-maliyet açısından
    çok kullanışlıdır.
"""


liste_7 = ['Herkese', 'İyi', 'Kodlamalar']
liste_8 = [x.upper() for x in liste_7]
print(liste_8)

# Output: ['HERKESE', 'İYI', 'KODLAMALAR']

 





0

Yorum Formu

vikikod.com    © 2019