Anasayfa / python / python list comprehension

python list comprehension

python list comprehension
Mevcut bir listenin değerlerine dayalı olarak yeni bir liste oluşturmak istediğimizde bize daha kısa bir söz dizimi sağlar.
sayilar= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
cift_sayilar= []
for x in sayilar:
if x % 2 == 0:
cift_sayilar.append(x)
print(cift_sayilar)
# [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
söz dizimi yapısı
newlist = [expression for item in iterable if condition == True]

 

bunu daha kısa biçimde elde etmek için
sayilar= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
cift_sayilar = [sayi for sayi in sayilar if sayi % 2 == 0]
print(cift_sayilar)

 

Başka bir örnek
yazarlar= ['Kamil Akdoğan','İbrahim Türk','Ali H. Neyzi','Rob Haskins','Kolektif','Emily Bone','Sabahattin Ali','Ferhat Özbadem','Ömer Zülfe','Erdoğan Uygur','Nick Warburton','Victoria Alexander','Nuran Koltuk','Dag Solstad','Rosi Braidotti','Hugh Collins','Derya Edis','Osman Nuri Topbaş','Seyyid Muhammed Nurul-Arabi','Stuart Douglas','Ömer Faruk Yelkenci','Nihad Sami Banarlı','Şenay Saçbüker','Cathy Maxwell','Sema Karabıyık','Dr. Ökkeş Narinç','Hilal Altun','Esra Çanlı']
s_ile_baslayanlar = [yazar for yazar in yazarlar if yazar.startswith('S')]
print(s_ile_baslayanlar)
# ['Sabahattin Ali', 'Seyyid Muhammed Nurul-Arabi', 'Stuart Douglas', 'Sema Karabıyık']

 

herhangi bir kısıtlamaya tabi olmadan listedeki tüm elemanları büyük harflere çevirip yeni bir liste oluşturalım
authors= ['Gülru Necipoğlu','Ian Graham','Nuri Özcan','Chae Man-Sik','Barış Karaz','Yıldıray Aydın','Barbara Nowak','Zafer Şimşek','Andrew Marr','Dr. Frank J. Sileo','Hristo Tatarçev','D. D. Everest','Dr. Ayhan Biber']
authors_upper = [auth.upper() for auth in authors]
print(authors_upper)

 

şimdide aynı listeden ismi sadece Nuri Özcan olanları Nuri Özcan olarak diğerlerini de Nuri değil olarak yeni bir listeye aktaralım
authors= ['Gülru Necipoğlu','Ian Graham','Nuri Özcan','Chae Man-Sik','Barış Karaz','Yıldıray Aydın','Barbara Nowak','Zafer Şimşek','Andrew Marr','Dr. Frank J. Sileo','Hristo Tatarçev','D. D. Everest','Dr. Ayhan Biber']
authors_nuri = [auth if auth =='Nuri Özcan' else 'Nuri Değil!' for auth in authors]
print(authors_nuri)

 

şimdide nested list üzerinde işlemler yapalım
elimizde elemanları str türünden olan iç içe listelerin elemanlarını int türüne çevirip yeni bir liste elde edelim
str_numbers = [
['50', '76', '21', '83'],
['62', '48', '1', '63', '53', '55', '96'],
['65', '9', '23', '25', '24', '11', '27', '17', '87'],
['120', '74', '32', '12', '73', '96', '28', '14', '45'],
['96', '65'], ['31', '45', '40', '47', '49'],
['55', '52', '14', '12']
]


int_numbers = [[int(y) for y in x] for x in str_numbers]
print(int_numbers)

 

Hakkında ibrahim

İlgili Makaleler

python locale.Error: unsupported locale setting locale.setlocale(locale.LC_ALL, ‘Turkish_Turkey.1254’)

if os.name == 'nt': locale.setlocale(locale.LC_ALL, 'Turkish_Turkey.1254') yeni windows updateleri ile artık Türkiye (‘Turkish_Türkiye’, ‘1254’)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir