neden TUPLES'imiz var?

Feb 24 2023
Python ile 3 yıl önce çalışmaya başladım, veri türleri, sınıf türleri ve daha fazlası dahil olmak üzere çeşitli kurs materyallerini kapsamlı bir şekilde incelerken kendimi tuple'ların amacı ve önemi üzerinde düşünürken buldum ve bu da beni neden daha derine inmeye sevk etti? hatta bir şey mi? Dürüst olmak gerekirse, projelerimde tuple'ları neredeyse hiç kullanmadım ve listelerden daha iyi kullanılmış bir vakaya sahip olabileceği gerçeğini hiç anlamadım (ki bu hemen hemen aynı şeyi yapıyor) Bunu düşünmedim bile ve doğru olanı buldum ŞİMDİYE KADAR bunun için durum kullanın!! Tuples'ta en sevdiğim Youtube kanallarından biri olan NetworkChuck'ın (abone olduğunuzdan emin olun, o harika ❤️) bir videosuna rastladım. Benimle aynı soruya sahipti ya da belki bilinçaltım yaptı.

Python ile 3 yıl önce çalışmaya başladım, veri türleri, sınıf türleri ve daha fazlası dahil olmak üzere çeşitli kurs materyallerini kapsamlı bir şekilde incelerken kendimi tuple'ların amacı ve önemi üzerinde düşünürken buldum ve bu da beni neden daha derine inmeye sevk etti ? hatta bir şey mi?

Dürüst olmak gerekirse, projelerimde tuple'ları neredeyse hiç kullanmadım ve listelerden daha iyi kullanılmış bir vakaya sahip olabileceği gerçeğini hiç anlamadım (ki bu hemen hemen aynı şeyi yapıyor) Bunu düşünmedim bile ve doğru olanı buldum bunun için davayı kullan

ŞİMDİYE KADAR!!

Tuples'ta en sevdiğim Youtube kanallarından biri olan NetworkChuck'ın (abone olduğunuzdan emin olun, o harika ❤️) bir videosuna rastladım . Benimle aynı soruya sahipti ya da belki bilinçaltım yaptı. Halihazırda listelerimiz varken demetlere ihtiyaç nedir?

Elbette, [ list ] öğesinin köşeli parantez içine alındığını ve ( demetlerin ) yuvarlak parantez içine alındığını biliyoruz ama başka ne var? Demek istediğim, resme bakın, dizeleri ve tamsayıları listedeki gibi alabiliriz.

Her iki veri türünün türünü yazdırdı

Demetlerin listelerden farkı nedir?

Tuple'lara neden ihtiyacımız var?

Hatta neden var?

Tüm soruları cevaplayalım ve bu konuyu kapatalım!

değişmezlik

Chuck'ın dediği gibi, Değişmez, değiştirilemez anlamına gelen süslü bir kelimedir.

Değişmez == değiştirilemez

değiştirilebilir == değiştirilebilir

( TUPLES ) değişmez anlamdır, bu yuvarlak parantez içindeki verileri değiştiremezsiniz, öte yandan [ LISTS ] değişkendir ve bu köşeli parantez içindeki veriler değiştirilebilir

MUTABLE oldukları için bir listedeki değerleri değiştirmeyi deneyelim

lists = ["Shivam", "Vasudeva",10]
lists = ["Shivam", "Vasudeva",10]
print("Before changing-- ",lists)
lists[2] = 14
print("After changing-- ", lists)
Before changing--  ['Shivam', 'Vasudeva', 10]
After changing--  ['Shivam', 'Vasudeva', 14]

tups = ("Shivam", "Vasudeva",10)
print("Before changing-- ",tups)
tups[2] = 14
print("After changing-- ",tups)

Şimdi soru şu: Nasıl yardımcı olur? Kodumuzu nasıl daha iyi hale getirir?

LIST'ten bir eksik özelliğe sahip olmak TUPLES'i Daha İyi mi yapıyor? Bu nasıl mantıklı?

Hız ️

Demetlerin değişmez olması onları listelerden daha hızlı yapar.

Chuck, videosunda demetlerin ne kadar hızlı olduğunu görmek için küçük bir test yaptı. Sonuçları vermek için her iki veri türünün aldığı süreyi yakalamak için demetler ve listeler üzerinde küçük bir kod çalıştırdı.

import timeit
#SPEED TEST
#Lists
print("List = ",timeit.timeit(stmt= '["Toronto", "Calgary","Montreal", "Vancouver", 647, 416, 437]', number=100000000))

#tuples 
print("Tuples = ",timeit.timeit(stmt= '("Toronto", "Calgary","Montreal", "Vancouver", 647, 416, 437)', number=100000000))

Liste, TUPLES'ten 10 kat daha fazla aldı. DELİ değil mi?

Bu tür bir hız küçük ölçekte önemli olmayacaktır, ancak hızın çok büyük bir faktör olduğu yüksek hesaplamalar için bir demet büyük bir fark yaratabilir.

Peki, bu hız farkının basit bir açıklaması var.

Listeler değişkendir , onları değiştirebiliriz ve aynı nedenle 2 blok bellekte depolanırken, TUPLES DEĞİŞTİRİLEMEZLİKLERİ nedeniyle sadece 1 blok bellekte saklanır.

Kulağa hoş geliyor ama hala neden tuple kullanmamız gerektiğine ikna olmamış olabilirsiniz‼️

veri türü

Yığın Taşmasına göre, [ listeler ] bir listede farklı türde veri türlerine sahip olabilse de, bu iyi bir uygulama olarak kabul edilmez.

Listelerin doğru kullanımı HOMOJEN veri tipine sahip olmaktır , yani bir listenin aynı veri tipine sahip olması gerekir.

#List Homogenous data
["Toronto", "Calgary", "Montreal", "Vancouver"]
#String is the only datatype

#Heterogeneous Data 
[("Toronto", 647, "Dundas"), ("Calgary", 587, "Ravenstern")]
#String and integers

Demet yapmak için ( )'ye bile ihtiyacınız yok. Aptalca değil mi? Aşağıdaki koda bakın, yuvarlak parantezler koymadım ve ait olduğu sınıfın türünü yazdırdım.

canada = "Toronto", "Calgary","Montreal"
print(type(canada))

      
                
Result of executing of code above

canada = "Toronto",
print(type(canada))

Bunu bilip bilmediğinizi veya demetlerin yapabileceği daha garip şeyler biliyorsanız yorumlarda bana bildirin.

Öğrenmeye devam et!!