Python’da Tuple: Değişmeyen Veri Yapılarının Gücü

Arzu Besiroglu
Academy Team
Published in
8 min readAug 1, 2024

Merhaba , bu yazımda size Data Science (Veri Bilimi) alanında sıkça kullanılan Tuple veri yapısından , tuple( ) fonksiyonundan ,bu veri tipiyle hangi işlemlerin yapılabileceğinden , tuple ile list yapısının benzerliklerinden ve farklarından bahsederek, tuple kullanmanın avantaj ve dezavantajlarını sıralayacağım.

Keyifli okumalar dilerim.

Giriş

Python’da veri saklamak için birçok yolumuz var. Bunlardan biri de tuple adı verilen veri yapısıdır. Tuple’lar, listeler gibi birden fazla farklı veri tipindeki değerleri içinde barındırabilirler ancak listelerin aksine değiştirilemezler. Yani bir kere oluşturduğunuz bir tuple’ın elemanlarını daha sonra değiştiremezsiniz . Bu özelliği, tuple’ları belirli durumlarda listelerden daha güvenilir ve kullanışlı hale getirir. Tuple’ların heterojen veri yapısı olma özelliği, onların veri modellemedeki çok yönlülüğünü artırır. Bu sayede, farklı veri tiplerini tek bir değişken altında toplamak mümkün hale gelir ve bu da veri yönetimini kolaylaştırır.

Tuple Nedir?

Tuple’lar, parantez içine alınmış ve virgülle ayrılmış sıralı elemanlardan oluşur. Tuple’ları oluştururken parantez kullanırız, ancak parantezleri kullanmasak bile virgülle ayrılmış değerler bir tuple olarak kabul edilir. Tuple, içinde int, float, string , boolean gibi farklı veri tiplerini barındırabilir. Tuple için farkı veri tiplerini içine alabilen , iterable ve immutable veri yapısıdır diyebiliriz.

Tuple oluşturmak için, tuple fonksiyonu ile tuple ( ) ve değişkene atayarak tuple= ( ) şeklinde iki yöntem vardır , ayrıca bir üçüncü yöntem daha var, ondan biraz sonra bahsedeceğim.

1. Fonksiyon ile Tuple oluşturma

Bu yöntemde tuple ( ) fonsiyonunun içine iterable bir ifade yazarak tuple oluştururuz.

1. Örnek

Yukarıdaki 1. Örnek ‘te, tuple( ) fonsiyonu içine , string bir ifade yazdığımızda string iterable olduğu için çıktının tuple olarak döndüğünü görebiliriz, dış parantezlerin normal parantez olduğuna dikkat edelim.

2. Örnek

Yukarıdaki 2. Örnek ‘te, tuple( ) fonsiyonu içine , int ve float değerler yazdığımızda sayısal ifadeler iterable olmadığı için hata verdiğini ve tuple olarak dönmediğini görebiliriz.

Bir de tuple fonksiyonu parantez içine 1 tane değer alır, virgülle birkaç değer aynı anda yazarsak hata alırız.

3.Örnek

Yukarıdaki 3. Örnek ‘te, tuple( ) fonsiyonu içine ,önce iki tane int , sonra bir int bir string ,en sonunda ise iki tane string değer yazdığımızda bize hata verdiğini ve tuple olarak dönmediğini görebiliriz. Burada boolean değer de girsek sonuç fark etmezdi, çünkü önemli olan argüman sayısıdır. Biz 2 tane değer girdik. Hata olarak bize ,tuple fonksiyonunun en fazla 1 argüman alacağını söyler.

tuple( ) fonksiyonunun içinde birden fazla eleman nasıl yazılır?

tuple ( ) fonksiyonu içine sadece 1 argüman alır dedik. Peki ben birkaç elemanı aynı anda tuple fonksiyonunun içine yazmak istediğimde nasıl bir yol izlemeliyim? Bunun da bir yolu var. Tuple fonksiyonu tek argüman istediğine göre ben de aynı veya farklı veri tipindeki verilerimi tek bir tuple içine veya tek bir liste içine yazıp tuple fonksiyonunun içinde kullanabilirim. Örneklerle konuyu pekiştirelim.

Bir de tuple fonksiyonu içine bir tane tuple tanımladığımızda nasıl işlem yapıldığını görelim ;

4. Örnek

Yukarıdaki 4. Örnek ‘te, bir tuple fonksiyonunun içine tuple içinde farklı tipte elemanlar yazdık ve hata vermedi. Çünkü fonksiyon içindeki tuple tek argüman olarak kabul edilir ve çıktı olarak tuple verir. Bunu en dış parantezlerden de görebiliriz.

Bir de tuple fonksiyonu içine bir tane list tanımladığımızda nasıl işlem yapıldığını görelim;

5. Örnek

Yukarıdaki 5. Örnek ‘te, bir tuple fonksiyonunun içine liste içinde aynı ve farklı tipte elemanlar yazdık ve hata vermedi çünkü , fonksiyon içindeki list tek argüman olarak kabul edilir ve çıktı olarak tuple verir, bunu en dış parantezlerden de görebiliriz.

2. Değişkene atayarak Tuple oluşturma

Bu yöntemde tuple elemanlarını tuple = ( ) gibi bir değişkene atayarak , tuple oluştururuz.

6. Örnek

Yukarıdaki 6. Örnek ‘te, ilk kod satırında bir tuple oluşturduk ve içine bir int (tam sayı) , bir float (ondalıklı sayı ) , bir string (metin ) ve bir boolean olmak üzere farklı veri tiplerinde değerler yazarak bunu tuple1 adındaki değişkene atadık. En alttaki kodda tuple1 ‘ in tipini sorguladığımızda tuple çıktısını aldığımızı böylece bir tuple oluşturduğumuzu görebiliriz.

Değişkene atadığımız tuple için , parantez olmadan da çalıştırsak herhangi bir hata almayız.

7. Örnek

Yukarıdaki 7. Örnek ‘te, değişkene atadığımız tuple için parantez kullanmadan , farklı veya aynı veri tiplerinin tuple oluşturduğunu görebiliriz.

3. Kod yazmadan Tuple oluşturma

Herhangi bir kod , fonksiyon yazmadan , değişken atamayıp , parantez kullanmadan , aynı veya farklı veri tipinde değerler yazıp çalıştırdığımızda çıktı olarak tuple veri yapısı döner.

8. Örnek

Yukarıdaki 8. Örnek ‘te, kod yazmadan, parantez kullanmadan , farklı veya aynı veri tiplerinin tuple oluşturduğunu görebiliriz.

Peki kod yazmadan, parantezli yazsaydık bir farkı olur muydu? Hayır olmazdı.

9. Örnek

Yukarıdaki 9. Örnek ‘te, kod yazmadan, parantez kullanarak , farklı veya aynı veri tiplerinin tuple oluşturduğunu görebiliriz.

Sonuç olarak parantezin burada özel bir görevi yok.

Tek elemanlı Tuple Nasıl Oluşturulur?

Tuple konusunda en çok karıştırılan meselelerden biri de tek elemanlı tuple oluşturmaktır. Tek bir elemanlı bir tuple oluştururken virgül koymayı unutmamalıyız.

Aşağıdaki örnekleri dikkatli inceleyelim.

10. Örnek

Yukarıdaki 10. Örnek ‘te, kod yazmadan ,parantez kullanarak veya kullanmayarak string veri tipinde tek elemanlı tuple oluşturmaya çalıştığımızda , bunun çıktısının string olduğunu görebiliriz, en dış kısmında normal parantez olmadığına dikkat edelim.

Bir de değişken atayarak aynı işlemi deneyelim.

11. Örnek

Yukarıdaki 11. Örnek ‘te, değişken atayarak ,parantez kullanarak veya kullanmayarak string veri tipinde tek elemanlı tuple oluşturmaya çalıştığımızda , bunun çıktısının string olduğuna dikkat edelim.

Peki string olarak tek elemanlı tuple oluşturmak için ne yapmamız gerekiyor? Sadece tuple’ın tek elemanının sonuna bir virgül koyduğumuzda bu işi çözüyoruz. Gelin birlikte örnekleri inceleyelim.

12. Örnek

Yukarıdaki 12. Örnek ‘te, sırasıyla parantez olmadan ,parantez kullanarak, değişkene atayarak ve fonksiyon içinde kullanarak 4 farklı kullanım gösterilmiştir. Tek elemanlı string veri tipinde tuple oluşturmaya çalıştığımızda, o tek elemanın sonunda virgül olduğuna dikkat edelim. Tüm çıktıların tuple olduğunu parantezlerin yapısından veya tipinin tuple olarak çıktı vermesinden anlıyoruz.

Veri tipi int olan tek elemanlı tuple oluşturmak istersek ne yapmamız gerekiyor? Burada da sadece tuple’ın tek elemanının sonuna bir virgül koyduğumuzda bu işi çözüyoruz, yani aynı yöntem geçerli . Gelin birlikte örnekleri inceleyelim.

13. Örnek

Yukarıdaki 13. Örnek ‘te, sırasıyla parantez olmadan ,parantez kullanarak ve değişkene atayarak 3 farklı kullanım gösterilmiştir. Tek elemanlı int veri tipinde tuple oluşturmaya çalıştığımızda , o tek elemanın sonunda virgül olduğuna dikkat edelim. Tüm çıktıların tuple olduğunu parantezlerin yapısından veya tipinin tuple olarak çıktı vermesinden anlıyoruz.

Aynı durum boolean veri tipinde de geçerli.

14. Örnek

Yukarıdaki 14. Örnek ‘te, sırasıyla parantez olmadan ,parantez kullanarak ve değişkene atayarak 3 farklı kullanım gösterilmiştir. Tek elemanlı boolean veri tipinde tuple oluşturmaya çalıştığımızda , o tek elemanın sonunda virgül olduğuna dikkat edelim. Tüm çıktıların tuple olduğunu parantezlerin yapısından veya tipinin tuple olarak çıktı vermesinden anlıyoruz.

Tuple’larla Ne Yapabiliriz?

  • Indeksing (Elemanlara Erişme) : İndeksleme kullanarak tuple’ların elemanlarına erişebiliriz. Örneğin, my_tuple[0] bize ilk elemanı verir.
  • Slicing: Belirli bir aralıktaki elemanları alabiliriz. Örneğin, my_tuple[1:3] ikinci ve üçüncü elemanları içeren yeni bir tuple döndürür.
  • Birleştirme: İki veya daha fazla tuple’ı + operatörüyle birleştirebiliriz.
  • Tekrarlama: Bir tuple’ı * operatörüyle belirli bir sayıda tekrarlayabiliriz.

Tuple ve Listeler Arasındaki Benzerlikler

1. İkisi de farklı veri tipleri ( int, float , string ,boolean) içerebilir.

2. İkisinde de elemanlar sıralıdır ve iterable özelliği (elemanlar içerisinde gezinebilme) taşır.

3. İkisinde de indeksleme ve slicing işlemleri yapılabilir.

Tuple ve Listeler Arasındaki Farklar

  1. Listeler , köşeli parantez [ ] veya list( ) fonksiyonu şeklinde gösterilir, Tuple ise , ( ) veya tuple( ) fonksiyonu ile gösterilir.

Ayrıca : Herhangi bir kod , fonksiyon yazmadan , değişken atamayıp , parantez kullanmadan , aynı veya farklı veri tipinde değerler yazıp çalıştırdığımızda çıktı olarak tuple veri yapısı döner.

2. Listelerde elemanlar indekslenip değiştirilebilir, Tuple veri yapısında ise elemanlar indekslenebilir fakat değiştirilemez.

3. Tuple , list veri yapısına göre daha hızlıdır.

Tuple ve Listeler Arasındaki Farkların Kodlarla Gösterimi

  1. Öncelikle listelerde işlem yaparken köşeli parantez kullanırız ve çıktı olarak köşeli parantez içinde bize liste döndürür.
  • list = [ ]
  • Aşağıdaki 15. Örneği inceleyelim.
15. Örnek
  • list( ) fonksiyonu da aynı şekilde liste içinde bize çıktı verir
  • list( ) şeklinde yazılır ve tipini de sorguladığımızda liste olduğunu görürüz. ( 16. Örnek )
16. Örnek
  • Tuple için ise normal parantez kullanırız ve çıktı olarak normal parantez içinde bize tuple döndürür.
  • tuple = ( )
  • Aşağıdaki 17. Örneği inceleyelim.
17. Örnek
  • tuple( ) fonksiyonu da aynı şekilde tuple içinde bize çıktı verir
  • tuple( ) şeklinde yazılır ve tipini de sorguladığımızda tuple olduğunu görürüz. (18. Örnek)
18. Örnek

2. Listelerde indeksle ulaşabildiğimiz elamanı değiştirebiliyoruz ve buna listelerin mutable olması özelliği deriz.

Aşağıdaki 19. Örnek’ te liste1 adındaki listemizin sıfırıncı indeksindeki eleman 5 iken , diğer kod satırında sıfırıncı indeksine 10 atadığımızda çalıştırdığımızda çıktıda liste1' deki ilk elemanın 10 olarak değiştiğine dikkat edelim.

19. Örnek

2. Tuple içinde ise indeksle ulaşabildiğimiz elamanı değiştiremiyoruz ve bu sebeple tuple immutable özelliği taşır deriz.

Aşağıdaki 20. Örnek ‘te tuple1 adında bir tuple oluşturduk , sonra tuple1' in sıfırıncı indeksindeki elemanın tuple1[0] kodunu yazarak 3 olduğunu gördük, en alttaki kod satırında ise tuple1 için sıfırıncı indekse 10 atadığımızda çalıştırdığımızda çıktıda hata verdiğine ,yani elemanı 10 olarak değiştiremediğimize dikkat edelim.

20. Örnek

Tuple Kullanmanın Avantajları Nelerdir?

  • Veri Güvenliği
  • Hız
  • Okunabilirlik
  • Anahtar-Değer Çiftleri

Tuple Kullanmanın Dezavantajları Nelerdir?

  • Değiştirilemezlik (bazı durumlarda kısıtlayıcı olabilir)
  • Esneklik eksikliği

Sonuç

Tuple’lar, Python’da sıkça kullanılan ve oldukça kullanışlı bir veri yapısıdır. Değiştirilemez olmaları sayesinde veri güvenliği sağlarlar ve kodun daha okunaklı olmasına yardımcı olurlar. Özellikle belirli verileri korumak veya anahtar olarak kullanmak istediğiniz durumlarda tuple’ları tercih edebilirsiniz.

Bu makalede, Python’da tuple’ ın ne olduğunu, neden kullanıldığını ve nasıl kullanılacağını ayrıntılı olarak ele aldım. Tuple , Python programlama dilinin önemli bir parçasıdır ve etkili bir şekilde kullanıldığında kodlarınızı daha güvenli ve daha okunaklı hale getirebilir.

Tuple’ların kullanım alanları, avantaj ve dezavantajları hakkındaki detaylar, Data Science ( Veri Bilimi) alanındaki yeri gibi konulara ise sonraki yazılarımda değineceğim. Tuple’larla ilgili daha fazla bilgi edinmek ve kendi projelerinizde bu güçlü veri yapısını kullanmaya başlamak için takipte kalın!

İlgili yazılarım devam edecek…

--

--