Liste ve Tuple Arasındaki Fark Nedir?

Yayınlanan: 2021-11-28

Tuple ve listeler, Python'da kullanılan bir veri yapısı türüdür. Listeler, köşeli parantezler kullanarak verileri tek bir değişkende saklarken, Tuples, verileri parantez yardımıyla tek bir değişkende saklar. Her iki yapı da birden çok değeri ve nesneyi depolamak için kullanılır.

Bu makale, liste ve demet arasındaki temel farklara dalacak ve kullanım durumlarını keşfedecektir. Ama önce, aralarındaki temel benzerliklere hızlıca bir göz atalım:

  • Tüm veri türlerinin öğelerini ve nesnelerini hem demetlerde hem de listelerde saklayabilirsiniz.
  • Hem tanımlama grubu hem de liste, ilgili dizinleri kullanılarak verilere erişilmesine izin verir.
  • Bu veri türlerinin her ikisi de çeşitli veri öğelerini derleyebilir ve kataloglayabilir.

İçindekiler

Python Tuple vs Liste

1. Sözdizimi Farklılıkları

Listelerin ve demetlerin bildirimi Python'da her zaman farklıdır. Listeler '[]' köşeli parantezler kullanılarak bildirilirken, demetlerin bildirimi '()' kullanılarak yapılır.

Python'da listelerin ve demetlerin nasıl bildirileceğini daha iyi anlamak için bir örnek.

liste_sayısı = [7,8,9,10]

tup_num = (10,11,13,14)

yazdır(list_num)

yazdır(tup_num)

Bu dizinin çıktısı olacaktır.

[7,8,9,10]

(10,11,13,14)

Bu örnekte, 7'den 10'a kadar sayıları barındıran list_num adlı bir değişken tanımlanmıştır. Ayrıca çıktının köşeli parantez içine alındığını da görüyoruz. Ancak, tup_num olarak tanımlanan ve 10'dan 14'e kadar sayıları tutan değişken, parantez kullanarak bir çıktı görüntüler.

Python, oluşturulan öğelerin türünü anlamamıza yardımcı olan bir type() işlevi kullanır.

yazdır(tür(tup_num))

print(type(list_num))

Çıktı:

<sınıf 'tuple'>

<sınıf 'listesi'>

2. Değişebilirlik (Değişken ve Değişmez)

Değişebilirlikleri söz konusu olduğunda, demetler ve listeler çelişkilidir. Tuple'lar, oluşturulduktan sonra değiştirilemeyen veya değiştirilemeyen değişmez yapılardır. Aksine listeler, oluşturulduktan sonra kolayca değiştirilebilen veya değiştirilebilen değişken yapılardır.

Değişmez yapıları nedeniyle sadece sözlükler için anahtar olarak kullanılabilirler. Listeler asla gerektiğinde anahtar olarak kullanılamaz.

3. Bir nesneyi değiştirme (Liste vs Tuple)

Listede bir değişiklik yapılmaya çalışıldığında ne olduğunu öğrenelim.

isim = [alex, rick, martin]

isim [0] = "roksi"

Not : İlk eleman her zaman 1 değil 0 olarak anılır.

Şimdi aşağıdaki komuttan sonra çıktının nasıl görüneceğine bir göz atalım:

>>>isim

Çıktı:

[roxy, rick, martin]

Çıktı, listedeki ilk öğenin nasıl değiştiğini gösterir.

Şimdi bir demet kullanılırsa sonucun ne olacağını görelim.

isim = (alex, rick, martin)

Tuple içindeki bir öğe kullanılarak değiştirildiğinde

isim(0) = "roksi"

Çıktı olacaktır:

TypeError: 'tuple' nesnesi, öğe atamasını desteklemiyor.

Bu, grup veri yapısının daha sonra değiştirilen bir nesneyi desteklemediği anlamına gelir. Bu nedenle, tuple'ların değil, yalnızca listelerin değiştirilebileceği sonucuna varabiliriz.

4. Kopyalar ve Yeniden Kullanılanlar

Tuple'lar kopyalanamaz. Buradaki sebep, demetlerin değişmez doğasıdır. Örneğin, bir demet (tup_name) çalıştırırsanız, kendisine geri yüklendiğini göreceksiniz.

Örnek vermek:

isimler = ('allen”,”siri”, “Michaela”)

copyNames = demet(isimler)

print(isimler kopya İsimlerdir)

Buradaki çıktı – “Doğru” olacaktır.

Aksine, aynısını bir liste için denerseniz ve yaparsanız, (örnekte gösterildiği gibi):

Örnek vermek:

isimler = [“allen”, “ siri “' “Michaela”]

copyNames = liste (isimler)

print(isimler kopya İsimlerdir)

Çıktı "yanlış" olarak gösterilecektir.

Gerçek bir çıktı için tam adları kopyalayıp yeni listeye yapıştırmanız gerekir.

5. Python Tuple vs Liste | Boyut Farkları

Tuple'ın değişmez doğası nedeniyle, Python, sadece nispeten düşük ek yükü olan büyük bloklar biçiminde grup bellekleri tahsis eder. Listeler için Python yalnızca daha küçük boyutlu bellek blokları sağlar. Sonuç olarak, demetler listelere kıyasla çok az miktarda belleğe sahiptir. Bununla birlikte, bu, birçok öğe söz konusu olduğunda, demetlerin kullanımının listelerden çok daha hızlı olduğu anlamına gelir.

6. Heterojen ve Homojen

Tuple'lar, heterojen olan çeşitli türlerdeki öğeleri depolayabilir. Aksine, listeler aynı varyantın homojen olan özelliklerini veya verilerini depolayabilir.

Ancak bu sadece anlamsal bir farktır. Örneğin, listeler çeşitli türlerdeki verileri depolayabilir ve demetler de aynı türdeki verileri depolayabilir.

Örnek vermek:

list_elements = ['allen', 20, 'mary']

tuple_elements = ('allen', “mary”, 'alex')

Listede sayılar ve dizeler olmasına rağmen kod sorunsuz bir şekilde çalışacaktır.

7. Boy Farkları

Listeler ve demetler de uzunluk ve boyut olarak değişir. Tuple'ların uzunluğu değişirken, tuple'ın uzunluğu sabittir. Bu nedenle, bir kez tanımlandıktan sonra sabit kalan demetlerin uzunluğunun aksine, listelerin boyutu herhangi bir zamanda değiştirilebilir.

Örnek vermek:

list_names = ['allen', 'mary', 'alex']

list_names.append(“roxy”)

print(list_names)

Çıktı:

['allen',' mary',' alex',' roxy']

Kesin çıktı, listeler söz konusu olduğunda append() işlevi yerine insert() işlevi kullanılarak da elde edilebilirdi.

Ancak, demet veri yapısı bize boyutunu değiştirmenin herhangi bir yolunu sağlamaz.

8. Kullanım Durumları

Farklı koşullar altında, bu veri yapılarından en az biri iyi çalışır. Genellikle veri yapısının kullanıldığı programın kodlayıcısına bağlıdır. Veri yapısı, veri öğelerinin gelecekte yeniden yazılıp yazılmayacağına göre seçilir.

Tuple'lar, listelerle karşılaştırıldığında veri yapıları olarak çok daha önemlidir, çünkü:

  • Listeler yerine tanımlama grupları kullanmak, kodlayıcıyı veya veri yorumlayıcısını bilgiyi değiştirmemesi konusunda bilgilendirebilir.
  • Tuple kullanarak verileri anahtarsız da geri yükleyebilirsiniz.
  • Tuple'lar Python'daki sözlüklere eşdeğerdir.
  • Bir liste içinde saklanan demetlerin okunması çok kolaydır.

Tuple'ların değişmez ve kolay anlaşılır doğası, onları sözlükler için mükemmel bir yedek haline getirir. Öte yandan, _hash_() işlevini desteklemedikleri için sözlükleri değiştirmek için listeleri kullanamazsınız.

Örnek vermek:

key_val= {('alex', 'cesur'):124} #Geçerli

key_val = {['alex', 'cesur']:124} #Geçersiz

9. Yerleştirme Listeleri ve Gruplar

Tuple'lar ve listeler birbiri içinde saklanabilir. İç içe geçmiş demetler daha fazla demet tutabilir. Benzer şekilde, iç içe listeler de daha fazla listeye sahip olabilir.

10. Hata ayıklama

Listelerle karşılaştırıldığında, daha kapsamlı projelerde demetlerin hatalarını ayıklamak çok daha kolaydır. Bunun nedeni, demetlerin değişmez özellikleridir. Bununla birlikte, çok daha az miktarda veri söz konusu olduğunda, her zaman listelere güvenmeniz önerilir. Hataların takip edilmesinin zor olduğu listelerin aksine değiştirilemeyecekleri için demetleri izlemek çok daha kolaydır.

11. Fonksiyonlar ve işlemler

Python'un sıralı, toplam, tümü, min, maks, yalın, vb. gibi demetlere ve listelere uygulanabilecek bazı yararlı işlevleri vardır.

İşlemler söz konusu olduğunda, listelerde ve demetlerde birçok benzerlik bulunabilir. Ancak listelerin, demetlerde bulunmayan bazı ekstra işlevleri vardır. Bunlar, öğelerin çıkarılması ve saklanmasının yanı sıra çoğunlukla pop ve insert işlemleridir.

Önemli Çıkarımlar

  • Tuple'lar, listelerden daha az işlevselliğe sahiptir.
  • Tuple'ın yapısı değişmez, listelerin yapısı ise değişkendir.
  • Tuple'lar sabit uzunluklarda gelir, oysa listelerin uzunluğu değişebilir.
  • Listenin sözdizimi “[]” köşeli parantezlerle gösterilirken, demetlerin sözdizimi “()” parantezleri şeklinde sunulur.
  • Tuple'lar, listelere kıyasla daha az bellek tüketir.
  • Elemanlara erişim söz konusu olduğunda, demet veri yapısı en iyisidir.
  • İşlev listesi, belirli silme ve ekleme işlemlerini gerçekleştirmede daha iyidir.
  • Tuple'larda yer alan yinelemeler, listelerde yer alan iterasyonlardan daha hızlıdır.
  • Listede birden fazla yerleşik yöntem olabilir, oysa demetin hiçbiri yoktur.

upGrad'ın 18 aylık Veri Bilimi Yüksek Lisansı ile Python'un temel özelliği ve gelişmiş kavramları hakkında ayrıntılı bilgi edinin. Liverpool John Moores Üniversitesi ve IIIT Bangalore ile işbirliği içinde program. Hizmetinizde olan sektör lideri öğretim kadrosu, 500 saatten fazla öğrenme materyali ve şüphe çözme sınıfları ile öğrenciler, kariyerlerini buna göre yönlendirmek için Python ve diğer veri bilimi temellerinde uzmanlaşma şansına sahiptir. Ayrıca program, Tableau, MySQL, Excel, MongoDB ve daha fazlası gibi 14'ten fazla dilde ve araçta yetkinliğin geliştirilmesine yardımcı olur.

Yani, tereddüt etmeyin. Bugün bize ulaşın!

Tuples veya Lists ne zaman kullanılır?

Veri öğelerinizin salt okunur olmasına ihtiyacınız varsa, tuple'ları kullanmalısınız. Asla değişmeyen verilerin garantili kullanılabilirliği nedeniyle veriler, demetlerde sabit kalır.

Ancak listeler çok değişkendir. Bu nedenle, içindeki veriler her zaman değiştirilebilir. Öğeleri bir listeye taşımak, değiştirmek, silmek ve eklemek çok esnektir. Program döngüsünün sonraki aşamalarında verilerin değiştirilmesi gerektiğinde en iyi şekilde kullanılırlar.

Tuple'lar listelere kıyasla daha mı hızlı?

Evet, bir demet oluşturmak, bir liste oluşturmaktan çok daha az zaman alır. Listeler yapılırken birden fazla bellek bloğuna erişilmesi gerekir. Bunun nedeni, demetlerdeki öğeler kaldırılıp değiştirilemezken, listelerdeki özellikler program döngüsü sırasında birkaç kez değiştirilebilir.

Gerçek hayatta demetler ve listeler nerede kullanılır?

Belirli bir tarifi kullanarak belirli bir yemeği pişirmek için gerekli adımları saklamak için bir liste yapılabilir. Liste, verilere sıralı erişimi içerir. Bu nedenle, adımlara sırayla erişebilirsiniz. Öte yandan, Tuples, ikamet ettiğiniz yerin boylamı veya enlemi gibi verileri depolamak için kullanılabilir. Bunun nedeni, bir demetin önceden tanımlanmış bir veri topluluğu olmasıdır. Aynı tanımlama grubunu diğer yerlerin konum koordinatlarını saklamak için de kullanabilirsiniz.