Python len(): Python’da Öğeleri Saymaya Yeni Başlayanlar için Kılavuz
Python’daki len() fonksiyonunu kullanarak dizgilerin, listelerin, sözlüklerin ve diğer veri yapılarının boyutunu hızla nasıl bulacağınızı öğrenin. Kendi kodunuzda len() ile çalışırken pratik örnekleri ve kaçınılması gereken yaygın hataları keşfedin.
len() fonksiyonu, Python programcılarının veriyi incelemek için başvurdukları ilk araçlardan biridir. Geliştiriciler için Python’a Giriş kursumuzu ya da Python Programlama Temelleri beceri yolumuzu takip ediyorsanız, len() ile mutlaka karşılaşmışsınızdır.
Bu yazıda, len()’in Python’daki yaygın veri türlerinde nasıl çalıştığını ve işler ters gittiğinde nelere dikkat etmeniz gerektiğini göstereceğim.
Python len() Fonksiyonu Ne Yapar?
Bir şeyin kaç öğe içerdiğini kontrol etmeniz gerektiğinde Python’un yerleşik len() fonksiyonunu kullanabilirsiniz. Bir listedeki öğelerin sayısını ya da bir dizgideki karakterlerin sayısını bulmak gibi. Ayrıca bir sözlükteki anahtarları saymak için de kullanabilirsiniz. Kullanım alanları çok çeşitlidir.
Ölçmek istediğiniz şeyi (yukarıda saydıklarım gibi) object’in yerine koymanız yeterlidir.
len()’i Yaygın Python Veri Türleriyle Kullanma
Yukarıda bazı yaygın kullanım durumlarını listeledim, ancak bunlar biraz soyuttu. len() kullanmanın değerini daha açık hâle getirmek için yaygın örnekler üzerinden gidelim.
Bir dizgideki karakterleri sayma
Diyelim ki bir metnin, boşluklar ve noktalama işaretleri dahil tam uzunluğunu bilmek istiyorsunuz:
Demetler (tuple), listeler gibi öğeleri bir araya getirir ancak değiştirilemezler; yani oluşturulduktan sonra değiştirilemezler. len() burada da çalışır:
Bu, "red" iki kez yazılsa da bir kez sayıldığı için 3 döndürür.
len() Kaputun Altında Nasıl Çalışır?
Benim de merak ettiğim gibi, len()’in boyutu aslında nasıl belirlediğini düşünebilirsiniz.
Bir nesne üzerinde len() çağırdığınızda Python, o nesnenin __len__ metodunu arar. Liste, dizgi ve sözlük gibi yerleşik türlerin hepsinde bu metod vardır.
Bunu bilmek bize şunu söyler: Kendi sınıfınızı oluşturur ve onunla len()’in çalışmasını isterseniz, __len__ metodunu kendiniz tanımlamanız gerekir:
Burada len()3 döndürür; çünkü kutu üç öğe içeriyor. Listelerde ve dizgilerde yaptığımız gibi, nesne bir __len__ metodu sunduğu sürece len() uyum sağlar.
len() Çalışmadığında Ne Olur?
Elbette, Python’daki her şeyin bir uzunluğu yoktur. len()’i bunu desteklemeyen bir şey üzerinde kullanmaya çalışırsanız (bir saniye içinde int veri türüyle göstereceğim) Python bir TypeError ile sizi bilgilendirir. Bu, özellikle karışık veri türleriyle çalışırken insanların sıkça karşılaştığı bir durumdur. Örneğin:
TypeError:object of type'int' has no len()Altyapı:
Bunu gördüğünüzde, ölçtüğünüz nesnenin gerçekten bir kapsayıcı ya da sıralı tür (dizgi, liste veya sözlük) olduğundan ve bir tamsayı ya da kayan nokta gibi tekil bir değer olmadığından emin olmak için tekrar kontrol edin.
Kullanışlı len() Senaryoları
Örnekleri, gerçek hayattaki programlama durumlarına biraz daha yakın olacak şekilde ele alalım.
range ile döngü kurma
Bir liste üzerinde indislerini kullanarak dolaşmanız gerektiğinde, len() döngünüz için doğru aralığı kurmanıza yardımcı olur:
fruits =["apple","banana","cherry"]for i inrange(len(fruits)):print(f"Index {i}: {fruits[i]}")Altyapı:
Bu, her meyveyi indisiyle birlikte yazdırır; size hem sırayı hem de bağlamı verir.
Index 0: apple
Index 1: banana
Index 2: cherryAltyapı:
Boş kapsayıcıları kontrol etme
Çoğu zaman, ilerlemeden önce bir kapsayıcının—örneğin bir listenin veya sözlüğün—boş olup olmadığını bilmek istersiniz:
cart =[]iflen(cart)==0:print("Your shopping cart is empty.")Altyapı:
Bu kalıp, üzerinde çalışacak bir şey olmadığında hatalardan ya da gereksiz işlemlerden kaçınmanıza yardımcı olur.
Uzun dizgileri kısaltma
Kullanıcı girdileriyle veya etiketleri görüntülemekle uğraşıyorsanız, dizgi uzunluğunu sınırlamak isteyebilirsiniz. len() bu sınırları uygulamanıza yardımcı olur:
Burada, 10 karakterden uzun her kullanıcı adı kısaltılır.
len() ile Yapılan Yaygın Hatalar
len(), Python konusunda biraz deneyiminiz olsa bile sizi ters köşe edebilir:
Tamsayılarda veya kayan noktalılarda len() kullanmaya çalışmak: Sayılar koleksiyon değildir, bu yüzden uzunlukları yoktur.
len()’in değerleri değil öğeleri saydığını unutmak: Bir sözlükte len, aynı değere işaret etseler bile anahtarları sayar.
len()’in her şeyde çalıştığını varsaymak: Özel sınıfların bir __len__ metoduna ihtiyacı vardır; aksi takdirde len() ne yapacağını bilemez.
Hata ayıklamada zaman kazanmak için bu kuralları aklınızda tutmaya çalışın.
len() ile Hata Yönetimi
len() yanlış kullanıldığında bir TypeError yükseltebileceğinden, özellikle öngörülemeyen verilerle çalışırken kodunuzu bu olasılığa hazırlamak akıllıca olur. try-except bloğu bu tür hataları zarifçe ele almanın basit bir yoludur:
data =123try:print(len(data))except TypeError:print("Object has no length.")Altyapı:
Programınız çökmek yerine şimdi dostça bir mesaj yazdırır. Bu tür konularda ustalaşmak için Python’da Nesne Yönelimli Programlama kursumuz harika bir kaynaktır.
len()’i Özel Sınıflarla Kullanma
Özel sınıflara geri dönelim. Özel sınıf, class anahtar sözcüğünü kullanarak kendiniz tanımladığınız herhangi bir sınıftır—programınıza özgü bir şeyi modelliyorsanız, örneğin bir Team, Box veya Library gibi. Daha önce, len()’in listeler ve sözlükler gibi yerleşik türlerde çalıştığını, çünkü __len__() adı verilen özel bir metod uyguladıklarını görmüştünüz. Aynısı kendi sınıflarınız için de geçerlidir. len()’in onlar üzerinde çalışmasını istiyorsanız, __len__()’i kendiniz tanımlamanız gerekir.
Sizi teknik ayrıntılarla boğmaya çalışmıyorum. Bunu anmanın önemli olduğunu düşünüyorum; çünkü yerel Python koleksiyonları gibi davranması gereken özel veri kapsayıcıları oluştururken kritik bir noktadır. len()’i destekleyerek, nesneleriniz diğer fonksiyonlar ve kütüphaneler de dahil olmak üzere Python ekosisteminin geri kalanıyla daha doğal biçimde etkileşime girebilir.
Yine len()3 döndürür; bu da takımınızdaki oyuncu sayısı olduğu için doğru yanıttır.
Sonuç
Python’da bir şeyin boyutunu saymanız, ölçmeniz veya doğrulamanız gerektiğinde, len()’in harika bir seçenek olduğunu unutmayın.
Ancak sona geldiğimize göre başka önemli bir şeyi de anmak istiyorum. Biz tek bir fonksiyona odaklandık, fakat Python’da bir şeyi yapmanın neredeyse her zaman birden fazla yolu vardır. Hatta bir listenin uzunluğunu bulmanın pek çok farklı yolunu gösteren bir makalemiz var ve len() fonksiyonu bunlardan sadece biri: Python List Size: 8 Different Methods for Finding the Length of a List in Python.
Yeni yöntemler üzerinde pratik yapmaya devam edin. Bu, sizi daha güçlü bir programcı yapmanın garantili bir yoludur. Ve Python Programlama beceri yolumuza kaydolmayı unutmayın; kod nasıl optimize edilir, fonksiyonlar ve testler nasıl yazılır ve çok daha fazlasını öğretecek.
Yazar
Josef Waples
Bilimsel dergilerde yayımlanan araştırma makalelerine katkıları olan bir veri bilimi yazarı ve editörüyüm. Özellikle lineer cebir, istatistik, R ve benzeri konularla ilgileniyorum. Aynı zamanda epey satranç da oynarım!
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
len()fonksiyonu, Python programcılarının veriyi incelemek için başvurdukları ilk araçlardan biridir. Geliştiriciler için Python’a Giriş kursumuzu ya da Python Programlama Temelleri beceri yolumuzu takip ediyorsanız,len()ile mutlaka karşılaşmışsınızdır.Bu yazıda,
len()’in Python’daki yaygın veri türlerinde nasıl çalıştığını ve işler ters gittiğinde nelere dikkat etmeniz gerektiğini göstereceğim.Python len() Fonksiyonu Ne Yapar?
Bir şeyin kaç öğe içerdiğini kontrol etmeniz gerektiğinde Python’un yerleşik
len()fonksiyonunu kullanabilirsiniz. Bir listedeki öğelerin sayısını ya da bir dizgideki karakterlerin sayısını bulmak gibi. Ayrıca bir sözlükteki anahtarları saymak için de kullanabilirsiniz. Kullanım alanları çok çeşitlidir.En basit hâliyle şöyle kullanılır:
Ölçmek istediğiniz şeyi (yukarıda saydıklarım gibi)
object’in yerine koymanız yeterlidir.len()’i Yaygın Python Veri Türleriyle Kullanma
Yukarıda bazı yaygın kullanım durumlarını listeledim, ancak bunlar biraz soyuttu.
len()kullanmanın değerini daha açık hâle getirmek için yaygın örnekler üzerinden gidelim.Bir dizgideki karakterleri sayma
Diyelim ki bir metnin, boşluklar ve noktalama işaretleri dahil tam uzunluğunu bilmek istiyorsunuz:
Bu,
5yazdırır; çünkü"Josef"("f" ile) beş karakterden oluşur.Bir listedeki öğe sayısını kontrol etme
Bir listenin kaç öğe içerdiğini bulmak isterseniz, şunu kullanın:
Burada çıktı olarak
5görürsünüz.Bir demetin boyutunu alma
Demetler (tuple), listeler gibi öğeleri bir araya getirir ancak değiştirilemezler; yani oluşturulduktan sonra değiştirilemezler.
len()burada da çalışır:Bu, demet iki öğe tuttuğu için
2üretir.Bir sözlükteki anahtarları sayma
Python sözlükleri anahtar-değer çiftlerinden oluşur. Bir sözlükte
len()kullandığınızda yalnızca anahtarları sayar:Dolayısıyla
3elde edersiniz (her anahtar için bir tane).Bir kümedeki benzersiz öğeleri kontrol etme
Kümeler, yalnızca benzersiz öğeleri saklamak istediğinizde kullanışlıdır.
len()size şunu söyler:Bu,
"red"iki kez yazılsa da bir kez sayıldığı için3döndürür.len() Kaputun Altında Nasıl Çalışır?
Benim de merak ettiğim gibi,
len()’in boyutu aslında nasıl belirlediğini düşünebilirsiniz.Bir nesne üzerinde
len()çağırdığınızda Python, o nesnenin__len__metodunu arar. Liste, dizgi ve sözlük gibi yerleşik türlerin hepsinde bu metod vardır.Bunu bilmek bize şunu söyler: Kendi sınıfınızı oluşturur ve onunla
len()’in çalışmasını isterseniz,__len__metodunu kendiniz tanımlamanız gerekir:Burada
len()3döndürür; çünkü kutu üç öğe içeriyor. Listelerde ve dizgilerde yaptığımız gibi, nesne bir__len__metodu sunduğu sürecelen()uyum sağlar.len() Çalışmadığında Ne Olur?
Elbette, Python’daki her şeyin bir uzunluğu yoktur.
len()’i bunu desteklemeyen bir şey üzerinde kullanmaya çalışırsanız (bir saniye içindeintveri türüyle göstereceğim) Python birTypeErrorile sizi bilgilendirir. Bu, özellikle karışık veri türleriyle çalışırken insanların sıkça karşılaştığı bir durumdur. Örneğin:Bu, aşağıdaki hatayı tetikler:
Bunu gördüğünüzde, ölçtüğünüz nesnenin gerçekten bir kapsayıcı ya da sıralı tür (dizgi, liste veya sözlük) olduğundan ve bir tamsayı ya da kayan nokta gibi tekil bir değer olmadığından emin olmak için tekrar kontrol edin.
Kullanışlı len() Senaryoları
Örnekleri, gerçek hayattaki programlama durumlarına biraz daha yakın olacak şekilde ele alalım.
range ile döngü kurma
Bir liste üzerinde indislerini kullanarak dolaşmanız gerektiğinde,
len()döngünüz için doğru aralığı kurmanıza yardımcı olur:Bu, her meyveyi indisiyle birlikte yazdırır; size hem sırayı hem de bağlamı verir.
Boş kapsayıcıları kontrol etme
Çoğu zaman, ilerlemeden önce bir kapsayıcının—örneğin bir listenin veya sözlüğün—boş olup olmadığını bilmek istersiniz:
Bu kalıp, üzerinde çalışacak bir şey olmadığında hatalardan ya da gereksiz işlemlerden kaçınmanıza yardımcı olur.
Uzun dizgileri kısaltma
Kullanıcı girdileriyle veya etiketleri görüntülemekle uğraşıyorsanız, dizgi uzunluğunu sınırlamak isteyebilirsiniz.
len()bu sınırları uygulamanıza yardımcı olur:Burada, 10 karakterden uzun her kullanıcı adı kısaltılır.
len() ile Yapılan Yaygın Hatalar
len(), Python konusunda biraz deneyiminiz olsa bile sizi ters köşe edebilir:Tamsayılarda veya kayan noktalılarda len() kullanmaya çalışmak: Sayılar koleksiyon değildir, bu yüzden uzunlukları yoktur.
len()’in değerleri değil öğeleri saydığını unutmak: Bir sözlükte len, aynı değere işaret etseler bile anahtarları sayar.
len()’in her şeyde çalıştığını varsaymak: Özel sınıfların bir
__len__metoduna ihtiyacı vardır; aksi takdirdelen()ne yapacağını bilemez.Hata ayıklamada zaman kazanmak için bu kuralları aklınızda tutmaya çalışın.
len() ile Hata Yönetimi
len()yanlış kullanıldığında birTypeErroryükseltebileceğinden, özellikle öngörülemeyen verilerle çalışırken kodunuzu bu olasılığa hazırlamak akıllıca olur. try-except bloğu bu tür hataları zarifçe ele almanın basit bir yoludur:Programınız çökmek yerine şimdi dostça bir mesaj yazdırır. Bu tür konularda ustalaşmak için Python’da Nesne Yönelimli Programlama kursumuz harika bir kaynaktır.
len()’i Özel Sınıflarla Kullanma
Özel sınıflara geri dönelim. Özel sınıf,
classanahtar sözcüğünü kullanarak kendiniz tanımladığınız herhangi bir sınıftır—programınıza özgü bir şeyi modelliyorsanız, örneğin birTeam,BoxveyaLibrarygibi. Daha önce,len()’in listeler ve sözlükler gibi yerleşik türlerde çalıştığını, çünkü__len__()adı verilen özel bir metod uyguladıklarını görmüştünüz. Aynısı kendi sınıflarınız için de geçerlidir.len()’in onlar üzerinde çalışmasını istiyorsanız,__len__()’i kendiniz tanımlamanız gerekir.Sizi teknik ayrıntılarla boğmaya çalışmıyorum. Bunu anmanın önemli olduğunu düşünüyorum; çünkü yerel Python koleksiyonları gibi davranması gereken özel veri kapsayıcıları oluştururken kritik bir noktadır.
len()’i destekleyerek, nesneleriniz diğer fonksiyonlar ve kütüphaneler de dahil olmak üzere Python ekosisteminin geri kalanıyla daha doğal biçimde etkileşime girebilir.Kısaca tekrar edelim:
Yine
len()3döndürür; bu da takımınızdaki oyuncu sayısı olduğu için doğru yanıttır.Sonuç
Python’da bir şeyin boyutunu saymanız, ölçmeniz veya doğrulamanız gerektiğinde,
len()’in harika bir seçenek olduğunu unutmayın.Ancak sona geldiğimize göre başka önemli bir şeyi de anmak istiyorum. Biz tek bir fonksiyona odaklandık, fakat Python’da bir şeyi yapmanın neredeyse her zaman birden fazla yolu vardır. Hatta bir listenin uzunluğunu bulmanın pek çok farklı yolunu gösteren bir makalemiz var ve
len()fonksiyonu bunlardan sadece biri: Python List Size: 8 Different Methods for Finding the Length of a List in Python.Yeni yöntemler üzerinde pratik yapmaya devam edin. Bu, sizi daha güçlü bir programcı yapmanın garantili bir yoludur. Ve Python Programlama beceri yolumuza kaydolmayı unutmayın; kod nasıl optimize edilir, fonksiyonlar ve testler nasıl yazılır ve çok daha fazlasını öğretecek.