Listelerin yapısını incelemiştik. Sıralı yapıdaydılar ve istediğimiz zaman veri ekleyip çıkarabiliyorduk. Demetler (tuple) de küme yapısında fakat listeler gibi ekleme - çıkarma yapamıyoruz. Demetler listelerden çok daha hızlı çalışır bu yüzden üzerinde oynama yapmayacağımız verileri demetlere atarak bir kaç fonksiyondan feragat edip hızdan kazanabiliriz.

Tanımlama

Demetleri tanımlama tıpkı listeler gibi, ancak köşeli parantez yerine normal parantez () kullanıyoruz. Aşağıda bir tane dolu bir tane boş demet tanımlaması görüyorsunuz.

bos_demet = ()

print bos_demet

dolu_demet = (1, "2", 3.14)

print dolu_demet

Gördüğünüz üzere demetler de listeler gibi birden fazla tipte veri alabilirler. İsterseniz parantez kullanmadan direkt virgülle ayırarak da kullanabilirsiniz.

dopdolu_demet = 1, "2", "selam", 5

print dopdolu_demet

İsterseniz bu demet mi diye kontrol edebilirsiniz. Aşağıdaki type fonksiyonu tuple çıktısını verecektir, bu demet demektir.

print type(dopdolu_demet)

Şimdi kafaları biraz karıştıralım. Hatırlarsanız demetler değiştirilemez demiştik. Ancak demetler içindeki veriler değiştirilebilir. Bu da demektir ki eğer demet içine bir liste eklersek onu değiştirebiliriz.

demet = (
    [1, 2, 3],
    "Selam",
    "Python",
    3
)

print demet

Gördüğünüz gibi demetin ilk elemanı bir liste. Şimdi bu listeye ekleme çıkarma yapalım.

demet = (
    [1, 2, 3],
    "Hobaleyy"
)

demet[0].append(4)

print demet

Hatırlarsanız append fonksiyonu ile listelere eleman ekleyebiliyorduk. Bu demetin ilk elemanı da liste olduğuna göre ona eleman ekledik ve yazdırdık. Yani demeti değiştirmedik ama dolaylı yoldan içindeki veriyi değiştirmiş olduk.

Fonksiyonlar

Demet içinde istediğimiz değerden kaç tane olduğunu öğrenmek için count fonksiyonunu kullanırız. Aşağıda da "umut" değerini arattık ve sonucu yazdırdık.

demet = ("Umut", "Okan", "Özgür", "Umut", "Ünal")

print demet.count("Umut")

Demet içindeki istediğimiz bir elemanın sıra numarasını öğrenmek için index fonksiyonunu kullanırız. Eğer aranan değer demet içinde yoksa hata verecektir, aksi halde sıra numarasını döndürür.

demet = ("Umut", "Okan", "Özgür", "Umut", "Ünal")

print demet.index("Umut")

Fark ettiyseniz demet içinde iki tane "umut" değeri vardı ama index fonksiyonu bize ilk sıradakini döndürdü. Eğer ilk değeri es geçip ikinci gelenin sıra numarasını almak istersek index fonksiyonuna ikinci bir parametre göndermeliyiz.

demet = ("Umut", "Okan", "Özgür", "Umut", "Ünal")

print demet.index("Umut", 2)

Yukarıda ikinci parametre olarak "2" verdik, yani birinciyi es geçip bir sonraki "umut" değerinin sıra numarasını aldık.

Demet Çözme

Demetlediğimiz verileri tek tek değişkenlere aktarmak isteyebiliriz. Aşağıdaki gibi sıra ile istediğimiz değişkenleri yazarsak demet içindeki değerler sırasıyla değişkenlere aktarılmış olacaktır.

bilgiler = ("Umut Çağdaş", "Coşkun", 1993, "Akdeniz Üniversitesi")

ad, soyad, dogum, okul = bilgiler

print ad
print soyad
print dogum
print okul

Demetler konusunda bahsedebileceğimiz şeyler şimdilik bunlar. Dilerseniz şuraya ya da şuraya bakabilirsiniz.

Devam et: Python: Hata Yakalama