koddla

Yazılımcıları bilgi ile güçlendirir.

Python’da listedeki öğelerin sayısını nasıl alabilirim?

Listenin boyutunu bulmak için yerleşik len() fonksiyonunu kullanın:

items = []
items.append("apple")
items.append("orange")
items.append("banana")

Ve aşağıdaki kod çıktı olarak 3 döndürür:

len(items)
>>>3

Açıklama

Python’daki her şey listeler de dahil olmak üzere nesnedir. Tüm nesnelerin de bir tür üstbilgisi vardır.

Python’da özellikle “boyutu” olan listeler ve diğer benzer yerleşik nesneler, nesnedeki öğe sayısının önbelleğe alındığı ob_size adlı bir özniteliğe sahiptir. Bu nedenle, listedeki nesnelerin sayısını kontrol etmek çok hızlı bir şekilde yapılabilir.

Ancak liste boyutunun sıfır olup olmadığını kontrol ediyorsanız bunu kullanmayın.

Dokümanlardan:

len(s)

Nesnenin uzunluğunu (öğe sayısı) döndürün. Bağımsız değişken bir sıra (dize, bayt, dizi, liste veya aralık gibi) veya bir koleksiyon (sözlük, küme veya dondurulmuş küme gibi) olabilir.

len ile __len__ ile uygulanır:

object.__len__(benlik)

Yerleşik len() işlevi uygulamak için çağrılır. Nesnenin uzunluğunu döndürmelidir, tamsayı >= 0. Ayrıca, [Python 2 veya Python 3’te __bool__()] __nonzero__() yöntemini tanımlamayan ve __len__() yöntemi sıfır döndüren bir nesne Boole bağlamında yanlış olarak kabul edilir.

Ve __len__() yönteminin bir liste yöntemi olduğunu da görebiliriz:

items.__len__()
>>>3

Hangi yerleşik türler için len kullanılabilir?

Bir sonraki kod parçasında görüleceği gibi, aşağıdaki tüm türler için len bilgisini alabileceğimizi görüyoruz:

>>> all(hasattr(cls, '__len__') for cls in (str, bytes, tuple, list, range, dict, set, frozenset))
True

Boş veya boş olmayan bir listeyi sınamak için kullanmayın

Belirli bir uzunluğu test etmek için, elbette aşağıdaki gibi kullanabiliriz:

if len(listem) == gerekli_uzunluk:
    ...

Ama sıfır uzunluk listesi veya tersi için test etmeyin.

Aşağıdaki gibi de yapmayın:

if len(listem): 
    ...

Bunun yerine aşağıdakini kullanabiliriz:

if listem:     # listemde öğeler var kullanabilirim
    ...

veya

if not listem: # veya listemde öğe yok kullanamam
    ...

Bir yanıt yazın

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

Back to top