Python - Liste Anlama
Liste Anlama
Liste anlama, mevcut bir listenin değerlerine dayalı olarak yeni bir liste oluşturmak istediğinizde daha kısa bir sözdizimi sunar.
Örnek:
Bir meyve listesine dayanarak, sadece adında "a" harfi olan meyveleri içeren yeni bir liste istiyorsunuz.
for
Liste anlama olmadan, içinde koşullu bir test içeren bir ifade yazmanız gerekecek :
Örnek
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
Liste kavrama ile tüm bunları yalnızca bir kod satırıyla yapabilirsiniz:
Örnek
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x
for x in fruits if "a" in x]
print(newlist)
sözdizimi
newlist = [expression for item in iterable if condition == True]
Dönüş değeri, eski listeyi değiştirmeden bırakan yeni bir listedir.
Şart
Koşul , yalnızca değeri olan öğeleri kabul eden bir filtre
gibidir True
.
Örnek
Yalnızca "elma" olmayan öğeleri kabul edin:
newlist = [x for x in fruits if x != "apple"]
Kondisyon
if x != "apple"True
"elma" dışındaki tüm öğeler için
dönecek ve yeni listenin "elma" dışındaki tüm meyveleri içermesini sağlayacaktır.
Koşul isteğe bağlıdır ve atlanabilir:
Örnek
Açıklama yapmadan if
:
newlist = [x for x in fruits]
yinelenebilir
Yinelenebilir , bir liste, grup, küme vb. gibi yinelenebilir herhangi bir nesne olabilir .
Örnek
range()
Yinelenebilir oluşturmak için işlevi kullanabilirsiniz :
newlist = [x for x in range(10)]
Aynı örnek, ancak bir koşulla:
Örnek
Yalnızca 5'ten küçük sayıları kabul edin:
newlist = [x for x in range(10) if x < 5]
İfade
İfade , yinelemedeki geçerli öğedir, ancak aynı zamanda, yeni listedeki bir liste öğesi gibi sona ermeden önce değiştirebileceğiniz sonuçtur :
Örnek
Yeni listedeki değerleri büyük harfe ayarlayın:
newlist = [x.upper()
for x in fruits]
Sonucu istediğiniz gibi ayarlayabilirsiniz:
Örnek
Yeni listedeki tüm değerleri 'merhaba' olarak ayarlayın:
newlist = ['hello' for x in fruits]
İfade , bir filtre gibi değil, sonucu değiştirmenin bir yolu olarak koşulları da içerebilir :
Örnek
"Muz" yerine "turuncu" döndürün:
newlist = [x if x != "banana" else "orange"
for x in fruits]
Yukarıdaki örnekteki ifade şöyle diyor:
"Muz değilse öğeyi iade edin, muz ise turuncu iade edin".