Python’da Demetler (Tuples)

0
721

Göreceğimiz ikinci veri yapısı tuple nesneleridir. Demetler (tuple nesneleri) ve listeler birbirine çok benzer. Bir demeti yaratmak için aç-kapa normal parantez kullanırız, Örn: t=(10, 20,30). Bir demetin elemanlarına listelerde olduğu gibi köşeli parantez kullanarak erişilir. Örn t[0 ] –> olarak erişmek istediğimizde tıplı listelerde olduğu gibi 10 değerini döndürecetir. Bir tuple’ın da eleman sayısını öğrenmek için len fonksiyonunu kullanabiliriz. Tuple nesneleri de elemanı olan nesnelerin adreslerini tutarlar. Bu açıdan da listelerden farkı yoktur. Demetlerde listelerde gördüğümüz dilimlemenin tamamını uygulayabiliriz, bir demeti dilimlediğimizde yine bir demek nesnesi elde ederiz. Demeti temsil eden sınıf tuple sınıfıdır ve tuple sınıfının parametresi dolaşılabilir nesneler olabilmektedir.

  • Tek elemanlı bir tuple oluşturmak için ‘t=(10, )’ şeklinde yazmak gerekir aksi taktirde yorumlayıcı bunu int bir nesne olarak algılayacaktır.
  • Bir tuple oluşturabilmek için aslında parantez kullanımı gerekmez fakat parantezin mecburen kullanılması gereken yerler vardır. Örn: a[10, (20, 30), 50] burada ifadeyi doğru verebilmek için parantez zorunludur. Tuple’ın ilk elemanına yine a[1 ][1 ] olarak erişeceğiz. Yada bir fonksiyona parametre olarak foo((10,20) ) gibi düşünebilirsiniz.
  • Demetlerde açılma da tıpkı listelerin açılması(unpacking) ile aynıdır.
  • Swap işlemlerinde çok kullanılır a=10, b=20 ve a,b = b,a a ile b yerdeğiştirmesi işlemi için çok kullanılır.
  • a,b = foo() buradan anlamamız gereken foo geri dönüş değeri olarak iterable bir nesne veriyormuş ki biz onu unpackling yapabildik.

Tuple ve Listelerin arasındaki farklar

  • En önemli fark, demet’in inmutable bir tür olması listing mutable olmasıdır. Yani tuple’ın bir indisine yeni bir değer atanamaz. Bu sebeple append, sort gibi bir methodları yoktur.
  • Listler, tuple’lara göre bellekte çok daha fazla yer kaplarlar. Çünkü listelerde kapasite olarak büyümeye karşı eğilimleri olduğundan list nesnesinin değiştirilebilirliğini sağlamak için fazladan elemanlar tutmaları gerekiyor, tahmin edersiniz ki yeni bellek alanları atayacak bunları yeni yerlere organize edecek vs. gibi işlemerde kullanılır. Bu sebeple tuple de bunlar olmadığından çok az yer kaplarlar.
  • Tuple,ın içindeki nesneler hashable neseneler ise tuple’da hashabledır. Listeler hashable değildir. Çünkü listelerin değeri değiştiğinde hashable olamazlar.
  • Dict, lookup tabloları gibi ya da minmax değer döndüren fonksiyonlar gibi değiştirilmemesi/ değiştirilmesine gerek olmayan nesneler için kullanıma uygundur.

Bu yazıyı burada bitiriyorum, sorularınız olursa yorum kısmında sorabilirsiniz.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz