- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
- Bağlantıyı al
- X
- E-posta
- Diğer Uygulamalar
Merhaba! Python'da veri gruplarını depolamanın en popüler yollarından biri de Tuple'lar (Demetler)'dir. Tıpkı listeler gibi, tuple'lar da sıralı bir koleksiyonda farklı türden öğeleri saklayabilir. Ancak tuple'ların en belirgin ve önemli özelliği değiştirilemez (immutable) olmalarıdır.
Bu özellik, tuple'ları verilerin sabit kalması gereken durumlar için ideal bir seçim haline getirir (örneğin, bir rengin RGB kodu, bir veritabanı kaydının koordinatları veya bir ay ismi listesi).
Bu yazıda, tuple'ların nasıl tanımlandığını, listelerden farklarını ve yaygın kullanım senaryolarını öğreneceğiz.
Tuple'lar, öğelerin parantezler (()) içine virgülle ayrılarak yazılmasıyla oluşturulur. Ancak parantezler teknik olarak isteğe bağlıdır, asıl önemli olan öğeleri ayıran virgüldür.
Sıralı (Ordered): Öğeler eklendikleri sırayı korur.
Değiştirilemez (Immutable): Oluşturulduktan sonra tuple'ın içine yeni öğe eklenemez, var olan öğe silinemez veya değiştirilemez.
Farklı Tipler: Tıpkı listeler gibi, farklı veri türlerini bir arada saklayabilir.
Örnek Tanımlama:
koordinat = 10, 20 # Parantezsiz tanımlama
tek_elemanli = ("Elma",) # Tek elemanlı tuple için
#virgül zorunludur!
print(type(koordinat))
# Çıktı: <class 'tuple'>
⭐ Önemli Not: Tek bir öğeye sahip bir tuple tanımlarken, öğeden sonra virgül (,) koymak zorunludur. Aksi takdirde, Python onu bir tuple değil, sadece bir string veya int olarak algılar.
Tuple'lar sıralı olduğu için, öğelere erişim tıpkı listelerdeki gibidir: Indexing (Dizinleme) ve Slicing (Dilimleme) kullanılarak yapılır.
Indexing: koordinat[0] (İlk öğe: 10)
Slicing: hafta[1:4] (İkinci öğeden dördüncü öğeye kadar)
hafta = ("Pzt", "Salı", "Çarş", "Perş", "Cuma")
print(hafta[1]) # Çıktı: Salı
print(hafta[-1]) # Çıktı: Cuma
| Özellik | Liste (List) | Tuple (Demet) |
| Söz Dizimi | Köşeli Parantezler [] | Parantezler () |
| Değiştirilebilirlik | Mutable (Değiştirilebilir) | Immutable (Değiştirilemez) |
| Kullanım Alanı | Değişken veri koleksiyonları, sık sık ekleme/silme gereken durumlar. | Sabit veri grupları, fonksiyonlardan birden fazla değer döndürme, sözlük anahtarları. |
Güvenlik/Sabitlik: Bir tuple'ı bir fonksiyona argüman olarak gönderdiğinizde, fonksiyonda yapılan işlemlerin orijinal tuple'ı değiştirmeyeceğinden emin olursunuz.
Performans: Değiştirilemez oldukları için listelere göre biraz daha hızlı işlem görebilirler.
Fonksiyondan Değer Döndürme: Python fonksiyonları genellikle birden fazla değeri bir tuple içinde döndürür.
kordinat_noktasi = (5, 12)
# kordinat_noktasi[0] = 7 # TypeError: 'tuple' object does not
#support item assignment
Tuple'lar değiştirilemez olduğu için append(), remove() veya sort() gibi değiştirici metotları yoktur. Ancak sorgulama metotları kullanılabilir:
count(değer): Belirtilen değerin tuple içinde kaç kez geçtiğini sayar.
# t.count(2) -> 2
index(değer): Belirtilen değerin ilk bulunduğu index numarasını döndürür.
# t.index("b") -> 1
len(tuple): Tuple'daki toplam öğe sayısını döndürür (yerleşik fonksiyon, metot değil).
Tuple'lar sabitlik gerektirdiğinde harikadır, ancak üzerlerinde değişiklik yapmanız gerektiğinde, geçici olarak listeye dönüştürülebilirler.
# 1. Tuple'ı Listeye Çevir
gecici_liste = list(sabit_degerler)
gecici_liste.append(40) # Değişiklik yapıldı
# 2. Listeyi tekrar Tuple'a Çevir
yeni_sabit_degerler = tuple(gecici_liste)
print(yeni_sabit_degerler)
# Çıktı: (10, 20, 30, 40)
Kendiniz deneyebilirsiniz:
6. Tuple Güncellemesi: Değişmezliği Aşmanın Dolaylı Yolu
Tuple'ların en temel kuralı, içeriklerinin değiştirilemez olmasıdır. Bir kez tanımlandığında,
öğe ekleyemez, silemez veya var olan bir öğeyi yerinde değiştiremezsiniz.
Ancak, bir tuple'daki veriyi "güncellemeniz" gerektiğinde uygulayabileceğiniz standart bir
teknik vardır. Bu teknik, orijinal tuple'ı değiştirmek yerine, yeni bir tuple oluşturmayı içerir.
Yöntem: Listeye Çevir, Değiştir, Tuple'a Çevir
Bir tuple'ı dolaylı olarak güncellemenin en yaygın yolu, onu geçici olarak değiştirilebilir bir türe
(liste) dönüştürmek, değişiklikleri yapmak ve ardından sonucu tekrar tuple'a dönüştürmektir.
Adım Adım Örnek:
Tuple, bir kullanıcının sabit doğum tarihini (yıl, ay, gün) tutuyor olsun. Yıl bilgisini 1990'dan
1991'e güncellemek istiyoruz.
1. Tuple Tanımlama (Orijinal Sabit Veri)
dogum_tarihi_tuple = (1990, 5, 15) 2. Listeye Dönüştürme (Değiştirilebilirlik Kazanma)
list() yerleşik fonksiyonu ile tuple'ı listeye çeviriyoruz.
gecici_liste = list(dogum_tarihi_tuple)
print(f"Liste Hali: {gecici_liste}")
# Çıktı: Liste Hali: [1990, 5, 15] 3. Güncelleme İşlemini Yapma (Liste Üzerinde)
Listenin 0. index'indeki (Yıl) değeri güncelliyoruz.
gecici_liste[0] = 1991 # Yıl bilgisini değiştirme
print(f"Güncel Liste: {gecici_liste}")
# Çıktı: Güncel Liste: [1991, 5, 15] 4. Tekrar Tuple'a Dönüştürme (Sabitliği Geri Kazanma)
tuple() yerleşik fonksiyonu ile güncellenmiş listeyi tekrar tuple'a çeviriyoruz ve bu yeni tuple'ı
orijinal değişkene atıyoruz.
dogum_tarihi_tuple = tuple(gecici_liste)
print(f"Yeni Tuple: {dogum_tarihi_tuple}")
# Çıktı: Yeni Tuple: (1991, 5, 15) Bu süreç, orijinal tuple'ın değişmezlik kuralını teknik olarak ihlal etmez. Biz sadece veriyi
değiştirilebilir bir forma aktardık, üzerinde işlem yaptık ve yeni bir tuple oluşturup aynı isimli
değişkene atayarak sanki güncelleme yapmış gibi göründük.
Tuple'lar, özellikle verinin değişmemesi gereken yerlerde (sabit konfigürasyonlar veya koordinat setleri) listenin sağladığı esnekliği, ek bir güvenlik katmanıyla sunar. Listeler kadar sık kullanılmasalar da, Python'da veri bütünlüğünü korumak için vazgeçilmezdirler.
Hemen kursumuza kaydolun ve bu güçlü araçları kullanarak profesyonel Python geliştiricisi olma yolunda ilk adımı atın. Kursumuzdaki uygulamalı modüller, sizi sadece bir yazılımcı adayı değil, hazır bir profesyonel haline getirecek. Python Eğitimini Udemy platformunda bulabilirsiniz.
Yorumlar
Yorum Gönder