Python Tuple(Demet) Kullanımı ve Örnekleri – Web Tasarım & Programlama
Bu yazıda Python Tuple(Demet) hakkında bilgiler bulacaksınız. Daha spesifik olarak ele alırsak, tuple nedir, nasıl oluşturulur, ne zaman kullanılırlar ve kullanırken aşina olmanız için gereken çeşitli metotları öğreneceksiniz.
Bir Tuple(Demet) Oluşturma
Tüm öğeler (öğeler) virgülle ayrılmış olarak yay ayraç ()
içine yerleştirilerek bir tanımlama grubu oluşturulur.
Parantezler isteğe bağlıdır, ancak bunları kullanmak iyi bir uygulamadır.
Bir demet herhangi bir sayıda öğeye sahip olabilir ve bunlar farklı türlerde olabilir (tamsayı, ondalık, liste, dize, vb.).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | # Farklı türlerde tuple tanımlama örnekleri # Boş bir tuple(demet) oluşturma demet = () print(demet) # Tam sayılardan oluşan bir demet oluşturma demet = (1, 2, 3) print(demet) # karışık veri türlerine sahip demet oluşturma demet = (1, “Merhaba”, 3.14) print(demet) # iç içe demet oluşturma demet = (“elma”, [18, 14, 16], (5, 10, 15)) print(demet) |
Çıktı:
() (1, 2, 3) (1, ‘Merhaba’, 3.14) (‘elma’, [18, 14, 16], (5, 10, 15)) |
Parantez kullanmadan da bir demet oluşturulabilir. Bu, demet paketleme olarak bilinir.
demet = 3, 1.12, “Kedi” print(demet) # paketten çıkarma a, b, c = demet print(a) # 3 print(b) # 1.12 print(c) # Kedi |
Çıktı:
(3, 1.12, ‘Kedi’) 3 1.12 Kedi |
Tek elemanlı bir demet oluşturmak biraz zor.
Parantez içinde bir eleman olması yeterli değildir. Aslında bir demet olduğunu belirtmek için sonunda bir virgüle ihtiyacımız olur.
demet = (“merhaba”) print(type(demet)) # <class ‘str’> # Tuple oluşturma demet = (“merhaba”,) print(type(demet)) # <class ‘tuple’> # parantez olmadan tuple oluşturma demet = “merhaba”, print(type(demet)) # <class ‘tuple’> |
Tuple Öğelerine Erişim
Bir demetin elemanlarına erişmenin çeşitli yolları vardır.
Index ile Erişim
Index’in 0’dan başladığı bir tanımlama grubundaki bir öğeye erişmek için dizin operatörünü []
kullanabiliriz.
Bu nedenle, 7 elemanlı bir demet 0’dan 6’ya kadar indekslere sahip olacaktır. Tuple indeks aralığının (bu örnekte 7,8,…) dışında bir indekse erişmeye çalışmak IndexError‘a neden olacaktır.
Indeks bir tamsayı olmalıdır, bu nedenle ondalık veya diğer türleri kullanamayız. Bu TypeError ile sonuçlanacaktır.
Benzer şekilde, aşağıdaki örnekte gösterildiği gibi, iç içe dizilere yuvalanmış indeks oluşturma kullanılarak erişilir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # Tuple elemanlarına index ile erişiö demet = (‘m’,‘e’,‘r’,‘h’,‘a’,‘b’,‘a’) print(demet[0]) # ‘m’ print(demet[6]) # ‘a’ # IndexError: tuple index out of range # print(demet[7]) # Index tam sayı olmalıdır # TypeError: list indices must be integers, not float # demet[2.0] # iç içe tuple demet = (“kivi”, [8, 4, 6], (1, 2, 3)) # iç içe index print(demet[0][3]) # ‘i’ print(demet[1][1]) # 4 |
Çıktı:
Negatif Index ile Erişim
Python, dizileri için negatif indekslemeye izin verir.
-1 dizini son öğeye, -2 ikinci son öğeye vb.
# Tuple elemanlarına index ile erişiö demet = (‘m’,‘e’,‘r’,‘h’,‘a’,‘b’,‘a’) # Çıktı: ‘a’ print(demet[–1]) # Çıktı: ‘r’ print(demet[–5]) |
Çıktı:
Dilimleme ile Erişim
Dilimleme operatörü :
kolonunu kullanarak bir tanımlama grubundaki bir dizi öğeye erişebiliriz:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # Tuple elemanlarına index ile erişiö demet = (‘m’,‘e’,‘r’,‘h’,‘a’,‘b’,‘a’) # 2. ile 4. arasındaki elemanlar (son index dahil değil) # Çıktı: (‘e’, ‘r’, ‘h’) print(demet[1:4]) # 0. indexten -5. indexe kadar olanlar # Çıktı: (‘m’, ‘e’) print(demet[:–5]) # 5. indexten sonrakiler # Çıktı: (‘b’, ‘a’) print(demet[5:]) # baştan sona kadar bütün elemanlar # Çıktı: (‘m’, ‘e’, ‘r’, ‘h’, ‘a’, ‘b’, ‘a’) print(demet[:]) |
Çıktı:
(‘e’, ‘r’, ‘h’) (‘m’, ‘e’) (‘b’, ‘a’) (‘m’, ‘e’, ‘r’, ‘h’, ‘a’, ‘b’, ‘a’) |
Bir Tuple’ı Değiştirme
Listelerden farklı olarak, demetler değişmezdir.
Bu, bir demetin elemanları atandıktan sonra değiştirilemeyeceği anlamına gelir. Ancak, öğenin kendisi liste gibi değişken bir veri türüyse, iç içe geçmiş öğeleri değiştirilebilir.
Ayrıca farklı değerlere bir demet atayabiliriz (yeniden atama).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # Tuple değiştirme sayilar = (4, 2, 3, [6, 5]) # TypeError: ‘tuple’ object does not support item assignment # my_tuple[1] = 9 # However, item of mutable element can be changed sayilar[3][0] = 9 # Çıktı: (4, 2, 3, [9, 5]) print(sayilar) # Tuple’lar yeniden atanabilir sayilar = (10,20,30,40,50) # Çıktı: (‘p’, ‘r’, ‘o’, ‘g’, ‘r’, ‘a’, ‘m’, ‘i’, ‘z’) print(sayilar) |
Çıktı:
(4, 2, 3, [9, 5]) (10, 20, 30, 40, 50) |
İki tuple’ı birleştirmek için +
operatörünü kullanabiliriz. Buna birleştirme denir.
Ayrıca *
operatörünü kullanarak bir demet içindeki elemanları belirli bir sayıda tekrarlayabiliriz.
Hem + hem de * işlemleri yeni bir Tuple ile sonuçlanır.
# Birleştirme # Çıktı: (1, 2, 3, 4, 5, 6) print((1, 2, 3) + (4, 5, 6)) # Tekrar # Çıktı: (‘YazilimKodlama’, ‘YazilimKodlama’, ‘YazilimKodlama’) print((“YazilimKodlama”,) * 3) |
Çıktı:
(1, 2, 3, 4, 5, 6) (‘YazilimKodlama’, ‘YazilimKodlama’, ‘YazilimKodlama’) |
Bir Tuple’ı Silme
Yukarıda tartışıldığı gibi, bir demet içindeki öğeleri değiştiremeyiz. Bu, bir demetten öğeleri silemeyeceğimiz veya kaldıramayacağımız anlamına gelir.
Bununla birlikte, bir demeti tamamen silmek, del
anahtar sözcüğünü kullanarak mümkündür.
# Tuple silme işlemi demet = (‘m’,‘e’,‘r’,‘h’,‘a’,‘b’,‘a’) # Tuple öğeleri silinemez # TypeError: ‘tuple’ object doesn’t support item deletion # del demet[3] # Ancak tüm demet silinebilir del demet # NameError: name ‘demet’ is not defined print(demet) |
Çıktı:
NameError: name ‘demet’ is not defined |
Tuple Metotları
Öğe ekleme veya öğe kaldırma yöntemleri, Tuple ile kullanılamaz. Yalnızca aşağıdaki iki yöntem kullanılabilir.
Python demeti metotlarından bazı örnekleri:
# Tuple(Demet) demet = (‘m’,‘e’,‘r’,‘h’,‘a’,‘b’,‘a’) print(demet.count(‘a’)) # Çıktı: 2 print(demet.index(‘b’)) # Çıktı: 5 |
Çıktı:
Diğer Tuple İşlemleri
in anahtarı ile sorgulama
in
anahtar sözcüğünü kullanarak bir öğenin bir demet içinde olup olmadığını test edebiliriz.
# Tuple(Demet) demet = (‘m’,‘e’,‘r’,‘h’,‘a’,‘b’,‘a’) # in operatörü print(‘a’ in demet) print(‘k’ in demet) # not in operatörü print(‘g’ not in demet) |
Çıktı:
Tuple Üzerinden Yineleme
Bir demet içindeki her bir öğeyi yinelemek için bir for
döngüsü kullanabiliriz.
# Tuple(Demet) demet = (‘m’,‘e’,‘r’,‘h’,‘a’,‘b’,‘a’) for harf in demet: print(“==>”, harf) |
Çıktı:
==> m ==> e ==> r ==> h ==> a ==> b ==> a |
Tuple’ın List’e Göre Avantajları
Tuple’lar listelere oldukça benzer olduğundan, her ikisi de benzer durumlarda kullanılır. Ancak, bir liste yerine bir tanımlama grubu uygulamanın bazı avantajları vardır. Aşağıda listelenen ana avantajlardan bazıları şunlardır:
- Genellikle heterojen (farklı) veri türleri için tanımlama grupları ve homojen (benzer) veri türleri için listeler kullanırız.
- Tuple’lar değişmez olduğundan, bir tuple üzerinden yineleme yapmak listeden daha hızlıdır. Yani hafif bir performans artışı var.
- Değişmez öğeler içeren demetler, bir sözlük için anahtar olarak kullanılabilir. Listelerle bu mümkün değildir.
- Değişmeyen verileriniz varsa, bunları Tuple olarak uygulamak, yazmaya karşı korumalı kalmasını garanti eder.