Python Listesi - Tuples Karşılaştırması (Örneklerle)

Bu makalede, Liste ve Tuples arasındaki temel farkları ve bu iki veri yapısının nasıl kullanılacağını öğreneceğiz.

Listeler ve Tuples, bir veya daha fazla nesneyi veya değeri belirli bir sırayla saklar. Bir listede veya tuple'da saklanan nesneler, Yok Anahtar Sözcüğü tarafından tanımlanan hiçbir şey türü dahil herhangi bir türde olabilir.

Listeler ve Tuple'lar çoğu bağlamda benzerdir, ancak bu makalede bulacağımız bazı farklılıklar vardır.

Sözdizimi Farklılıkları

Liste ve tuple sözdizimi biraz farklıdır. Listeler köşeli parantezlerle (), Başlıklar ise parantezle çevrilidir ().

Örnek 1.1: Liste Oluşturma ve Demet Oluşturma

 list_num = (1,2,3,4) tup_num = (1,2,3,4) print(list_num) print(tup_num)

Çıktı:

 (1,2,3,4) (1,2,3,4)

Yukarıda, biz gelen numaralarının listesini tutmak değişken denilen list_num tanımlanan 1için 4parantez ile çevrilidir .bu liste (). Ayrıca tup_num değişkenini tanımladık; olan sayısının bir başlığın içerir 1için 4. Tuple, parantez ile çevrilidir ().

Python'da type()oluşturulan nesnenin türünü veren fonksiyonumuz var .

Örnek 1.2: type () işlevini kullanarak veri yapısı türünü bulun

 type(list_num) type(tup_num)

Çıktı:

 listesi listesi

Değişken Liste ve Değiştirilemez Tuples

Listenin değişken bir yapısı vardır, yani liste yaratıldıktan sonra ihtiyaçlara göre değiştirilebilir veya değiştirilebilir, oysa tuple değişmez bir yapıya sahiptir, yani tuple oluşturulduktan sonra değiştirilemez veya değiştirilemez.

Örnek 2.1: Bir Öğe Listesini Tuple'a Karşı Değiştirme

 list_num(2) = 5 print(list_num) tup_num(2) = 5

Çıktı:

 (1,2,5,4) Geri izleme (en son çağrı): Dosya "python", satır 6, TypeError'da: 'tuple' nesnesi öğe atamasını desteklemiyor

Yukarıdaki kodda atanan 5dizinde list_num için 2ve bulduğumuz 5endeksinde 2çıkışında. Ayrıca 5indekste tup_num'a atadık 2ve elde ettik type error. Değişmez doğası nedeniyle tuple'ı değiştiremeyiz.

Not: Demet değişmez olduğundan, bunlar boyut olarak sabittir ve liste boyut olarak değişkendir.

Mevcut İşlemler

Listelerin tuple'dan daha fazla yerleşik işlevi vardır. dir((object))Liste ve tuple için tüm ilişkili işlevleri elde etmek için dahili işlevi kullanabiliriz .

Örnek 3.1: Liste Dizini

 dir(list_num)

Çıktı:

('__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', ' __gt__ ',' __hash__ ',' __iadd__ ',' __imul__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __new__ ' , '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', ' kopyala ',' say ',' genişlet ',' dizin ','ekle ',' pop ',' kaldır ',' ters çevir ',' sırala ')

Örnek 3.2: Tuple Dizini

 dir(tup_num)

Çıktı:

 ('__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', ' __gt__ ',' __hash__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __new__ ',' __reduce__ ',' __reduce_ex__ ' , '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index')

Açıkça görebiliyoruz ki, bir tuple üzerindeki bir listeyle ilişkili pek çok ek işlevsellik var. Tuple'da bulunmayan dahili işlevlerle listedeki öğeleri ekleme ve açma, kaldırma ve sıralama işlemleri yapabiliriz.

Boyut Karşılaştırması

Tuples işlemi, listeden daha küçük boyuta sahiptir, bu da onu biraz daha hızlı yapar, ancak çok sayıda öğeye sahip olana kadar bahsedecek kadar fazla değildir.

Örnek 5.1: Liste ve Tuple boyutunun hesaplanması

 a= (1,2,3,4,5,6,7,8,9,0) b= (1,2,3,4,5,6,7,8,9,0) print('a=',a.__sizeof__()) print('b=',b.__sizeof__())

Çıktı:

 a = 104 b = 120

Yukarıdaki kodda, aynı öğelere sahip tuple a ve liste b var, ancak tuple boyutu listeden daha küçük.

Farklı Kullanım Durumları

İlk bakışta, listelerin her zaman tuple'ların yerini alabileceği görünebilir. Ancak demetler son derece yararlı veri yapılarıdır

  1. Liste yerine demet kullanmak, programcıya ve yorumlayıcıya verilerin değiştirilmemesi gerektiğine dair bir ipucu verebilir.
  2. Tuple'lar genellikle verileri depolamak için anahtarsız bir sözlüğün eşdeğeri olarak kullanılır. Örneğin,
     (('Kılıç Balığı', 'Dominic Sena', 2001), ('Snowden', 'Oliver Stone', 2016), ('Taksi Şoförü', 'Martin Scorsese', 1976))
    Yukarıdaki örnek, bir film listesi içeren listenin içinde tuple içerir.
  3. Kayıtlar bir liste içinde saklandığında verileri okumak daha kolaydır. Örneğin,
     ((2,4), (5,7), (3,8), (5,9))
    okumaktan daha kolay
     ((2,4), (5,7), (3,8), (5,9))

Tuple, hashable ve immutable doğası nedeniyle sözlükte anahtar olarak da kullanılabilir, oysa Listeler bir sözlükte anahtar olarak kullanılmaz çünkü liste işleyemez __hash__()ve değiştirilebilir doğaya sahip değildir .

 key_val= (('alpha','bravo'):123) #Valid key_val = (('alpha','bravo'):123) #Invalid 

Hatırlanması gereken önemli noktalar:

  1. Tuple'ların değişmez sözdizimi parantezlerle gösterilirken (), listelerin değişmez sözdizimi köşeli parantezlerle gösterilir ().
  2. Listelerin uzunluğu değişken, tuple sabit uzunluktadır.
  3. List değişken bir yapıya sahiptir, tuple değişmez bir yapıya sahiptir.
  4. List, tuple'dan daha fazla işlevselliğe sahiptir.

Ilginç makaleler...