Bir çok veriyi tek bir değişken içinde depolamamızı sağlayan Python koleksiyonlarından bir diğeri Demetler(Tuples)dir. Demet, matematikte verilerin sonlu sıralı bir dizisi ya da listesi olarak tanımlanmaktadır.  Python’da ise içindeki verilerin değiştirilemediği bir veri koleksiyonudur.

Özelliklerini daha önce Python veri koleksiyonları tablosunda özetlemiştik.

KoleksiyonİndekslenmişSıralanmışDeğiştirilebilirVeri Tekrarlanabilir
Listeler++++
Demetler+++
Kümeler–  (Yeni veri eklenip çıkartılabilir)
Sözlükler++

Demetler içinde yer alan veriler tıpkı listeler de olduğu gibi sıra numaralarıyla 0’dan başlamak üzere indekslenmişlerdir. Ancak listelerden farklı olarak bu sıra numaraları değişmez. Çünkü demetler içindeki veriler değiştirilemez, yeni veri eklenemez ve mevcut veriler silinemez.

Ancak bir veri demet içinde birden fazla kez yer alabilir.

Bir demet oluşturmak için listelerden farklı olarak köşeli parantez yerine standart parantezler kullanılır.

personelListesi = ("Oben Seven", "Aykut Demir", "Mert Bozok")
print(personelListesi)

Çıktı:

('Oben Seven', 'Aykut Demir', 'Mert Bozok')

 

Dikkat edilmesi gereken husus, içinde yalnızca bir adet veri bulunan bir demet oluşturmak istediğinizde veriden sonra yeni bir veri eklenmeyecek olsa da mutlaka virgül koymanız gerekmesidir. Eğer virgül kullanmazsanız string türünde bir değişken tanımlamış olursunuz.

personel=("Oben Seven",)
print(type(personel))
yeniPersonel=("Mert Bozok")
print(type(yeniPersonel))

Çıktı:

<class 'tuple'>
<class 'str'>

 

Demetler ile listelerde öğrendiğiniz pek çok kavram ve metod ortaktır. Bu nedenle tekrara düşmemek için demetlerin farklı yönlerine değinmeye çalışacağım. Ortak özelliklerini ise, kısaca bahsederek geçeceğim.

Demetlerde de listeler gibi;

  • İçerisinde her tür veriyi karışık olarak bulundurabilir
  • İçinde kaç veri yer aldığını öğrenmek için len() metodunu kullanabilirsiniz
  • Bir verinin kaç kez yer aldığını öğrenmek için de count() metodunu kullanabilirsiniz
  • Verinin sıra numarasını öğrenmek için de index() metodunu kullanabilirsiniz

Demetleri direkt parantez gösterimi ile tanımlayabildiğiniz gibi ayrıca tuple() fonksiyonu ile tanımlayabilirsiniz;

yeniListe = tuple(("Python", "Javascript", "PHP"))
print(yeniListe)

Çıktı:

('Python', 'Javascript', 'PHP')

 

Demetler içindeki verilere erişim de tıpkı listelerde olduğu gibidir.

Demetler daha önce de bahsettiğimiz gibi değiştirilemez, eklenemez ve çıkartılamaz verilere sahiptir. Ancak çok gerekli olduğu takdirde, yeniListe=list(demet) ifadesiyle demeti listeye dönüştürüp verileri değiştirebilir, ekleyip çıkartabilir, sonra da yeniDemet=tuple(yeniListe) ifadesiyle tekrar demete dönüştürüp kullanabilirsiniz.

Alternatif bir yol olarak, demetlere yeni veri eklemek için birleştirme operatörünü kullanarak ve sonucu yeni demet yerine aynı demete atayarak, demetlere yeni veriler eklemeniz mümkündür.

webProgramlama = ('Python', 'Javascript', 'PHP', 'HTML', 'CSS', 'SQL')
jsCercevesi=("VueJS",)
webProgramlama = webProgramlama + jsCercevesi
print(webProgramlama)

Çıktı:

('Python', 'Javascript', 'PHP', 'HTML', 'CSS', 'SQL', 'VueJS')

 

Demetleri tamamen ortadan kaldırmak için listelerde olduğu gibi del anahtar kelimesini kullanabilirsiniz.

Demet içindeki verileri tıpkı Listelerde olduğu gibi değişkenlere atayarak değişken isimleri ile erişip kullanabiliriz.

Demetlerde de tıpkı listelerde olduğu gibi demet içindeki verilere döngüler yardımıyla erişebilirsiniz.

+ ve * aritmetik operatörlerini demelerde de kullanabilir ve demetleri birleştirerek ya da içindeki verileri katlayarak çoğaltıp yeni demetler oluşturabilirsiniz.

Demetlerde; extend(), sort(), copy() metodları kullanılamaz.

Demetler ile ilgili burada yer alan ve listeler ile ortak özelliklere sahip olduğu için yer almayan tüm örneklere şuradan göz atabilirsiniz:

https://repl.it/@ObenSEVEN/demetler