Senarai Python vs. Tuples (Dengan Contoh)

Dalam artikel ini kita akan mempelajari perbezaan utama antara Daftar dan Tuples dan cara menggunakan kedua struktur data ini.

Daftar dan Tuples menyimpan satu atau lebih objek atau nilai dalam urutan tertentu. Objek-objek yang disimpan dalam senarai atau tuple boleh terdiri daripada jenis apa pun termasuk jenis apa-apa yang ditentukan oleh Kata Kunci Tiada.

Daftar dan Petikan serupa dalam kebanyakan konteks tetapi terdapat beberapa perbezaan yang akan kita dapati dalam artikel ini.

Perbezaan Sintaksis

Sintaks senarai dan tuple sedikit berbeza. Daftar dikelilingi oleh tanda kurung siku ()dan Tuples dikelilingi oleh tanda kurung ().

Contoh 1.1: Membuat Senarai vs Membuat Tuple

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

Pengeluaran:

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

Di atas, kami menentukan pemboleh ubah yang disebut list_num yang memegang senarai nombor dari 1hingga 4. Senarai dikelilingi oleh tanda kurung (). Juga, kami menentukan tup_num pemboleh ubah; yang mengandungi tupel nombor dari 1hingga 4. Tuple dikelilingi oleh kurungan ().

Di python kita mempunyai type()fungsi yang memberikan jenis objek yang dibuat.

Contoh 1.2: Cari jenis struktur data menggunakan fungsi type ()

 type(list_num) type(tup_num)

Pengeluaran:

 daftar tuple

Senarai Mutable vs Tuples Tidak Berubah

List mempunyai sifat yang boleh diubah iaitu daftar boleh diubah atau diubah setelah penciptaannya mengikut keperluan sedangkan tuple mempunyai sifat yang tidak berubah iaitu, tuple tidak dapat diubah atau diubah setelah penciptaannya.

Contoh 2.1: Ubahsuai Senarai item vs Tuple

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

Pengeluaran:

 (1,2,5,4) Jejak (panggilan terakhir terakhir): Fail "python", baris 6, dalam TypeError: objek 'tuple' tidak menyokong penugasan item

Dalam kod di atas, kami menetapkan 5list_num di index 2dan kami dapati 5di index 2dalam output Juga, kami menetapkan 5tup_num di indeks 2dan kami dapat type error. Kami tidak dapat mengubahsuai tuple kerana sifatnya yang tidak berubah.

Catatan: Kerana tuple tidak berubah ini tetap dalam ukuran dan senarai berubah dari segi ukuran.

Operasi yang Ada

Daftar mempunyai lebih banyak fungsi builtin daripada tuple. Kita dapat menggunakan dir((object))fungsi inbuilt untuk mendapatkan semua fungsi yang berkaitan untuk daftar dan tuple.

Contoh 3.1: Direktori Senarai

 dir(list_num)

Pengeluaran:

('__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', "__getattribute__", "__get" __gt__ ',' __hash__ ',' __iadd__ ',' __imul__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __ne__ ' , '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'jelas', ' salin ',' hitung ',' panjangkan ',' indeks ','masukkan ',' pop ',' remove ',' reverse ',' sort ')

Contoh 3.2: Direktori Tuple

 dir(tup_num)

Pengeluaran:

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

Kita dapat melihat dengan jelas bahawa terdapat begitu banyak fungsi tambahan yang berkaitan dengan senarai di atas tuple. Kita boleh melakukan operasi memasukkan dan pop, membuang dan menyusun elemen dalam senarai dengan fungsi inbuilt yang tidak terdapat di Tuple.

Perbandingan Saiz

Operasi Tuples mempunyai ukuran yang lebih kecil daripada senarai, yang menjadikannya sedikit lebih cepat tetapi tidak banyak yang perlu disebutkan sehingga anda mempunyai sebilangan besar elemen.

Contoh 5.1: Hitung ukuran List vs. Tuple

 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__())

Pengeluaran:

 a = 104 b = 120

Dalam kod di atas kita mempunyai tuple a dan list b dengan item yang sama tetapi ukuran tuple kurang dari senarai.

Kes Penggunaan Berbeza

Pada pandangan pertama, nampaknya senarai selalu dapat menggantikan tupel. Tetapi tupel adalah struktur data yang sangat berguna

  1. Menggunakan tuple dan bukannya senarai dapat memberi petunjuk kepada pengaturcara dan jurubahasa bahawa data tidak boleh diubah.
  2. Tuples biasanya digunakan sebagai setara kamus tanpa kunci untuk menyimpan data. Sebagai contoh,
     (('Swordfish', 'Dominic Sena', 2001), ('Snowden', 'Oliver Stone', 2016), ('Pemandu Teksi', 'Martin Scorsese', 1976))
    Contoh di atas mengandungi tuple dalam senarai yang mempunyai senarai filem.
  3. Membaca data lebih mudah apabila tupel disimpan di dalam senarai. Sebagai contoh,
     ((2,4), (5,7), (3,8), (5,9))
    lebih senang dibaca daripada
     ((2,4), (5,7), (3,8), (5,9))

Tuple juga dapat digunakan sebagai kunci dalam kamus kerana sifatnya yang tidak dapat diubah dan tidak berubah sedangkan Daftar tidak digunakan sebagai kunci dalam kamus kerana senarai tidak dapat dikendalikan __hash__()dan mempunyai sifat yang dapat berubah.

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

Perkara utama yang perlu diingat:

  1. Sintaks literal tupel ditunjukkan oleh tanda kurung ()sedangkan sintaksis literal senarai ditunjukkan oleh tanda kurung ().
  2. Daftar mempunyai panjang berubah, tuple mempunyai panjang tetap.
  3. Senarai mempunyai sifat yang boleh berubah, tuple mempunyai sifat yang tidak berubah.
  4. List mempunyai lebih banyak fungsi daripada tuple.

Artikel menarik...