Pada artikel ini kita akan mempelajari perbedaan utama antara List dan Tuple serta cara menggunakan kedua struktur data ini.
List dan Tuple menyimpan satu atau lebih objek atau nilai dalam urutan tertentu. Objek yang disimpan dalam daftar atau tuple dapat berupa jenis apa pun termasuk jenis tidak ada yang ditentukan oleh Kata Kunci Tidak Ada.
List dan Tuple serupa di sebagian besar konteks tetapi ada beberapa perbedaan yang akan kita temukan di artikel ini.
Perbedaan Sintaks
Sintaks daftar dan tupel sedikit berbeda. Daftar dikelilingi oleh tanda kurung siku ()
dan Tupel dikelilingi oleh tanda kurung ()
.
Contoh 1.1: Membuat List vs. Membuat Tuple
list_num = (1,2,3,4) tup_num = (1,2,3,4) print(list_num) print(tup_num)
Keluaran:
(1,2,3,4) (1,2,3,4)
Di atas, kami mendefinisikan variabel yang disebut list_num yang menyimpan daftar angka dari 1
hingga 4
. Daftar tersebut dikelilingi oleh tanda kurung ()
. Juga, kami mendefinisikan variabel tup_num; yang berisi tupel nomor dari 1
hingga 4
. Tupel tersebut dikelilingi oleh tanda kurung ()
.
Di python kami memiliki type()
fungsi yang memberikan jenis objek yang dibuat.
Contoh 1.2: Temukan tipe struktur data menggunakan fungsi type ()
type(list_num) type(tup_num)
Keluaran:
daftar tupel
Daftar Berubah vs Tupel yang Tidak Dapat Diubah
List memiliki sifat yang dapat berubah yaitu list dapat diubah atau dimodifikasi setelah dibuat sesuai dengan kebutuhan sedangkan tuple bersifat tidak berubah yaitu tupel tidak dapat diubah atau dimodifikasi setelah dibuat.
Contoh 2.1: Memodifikasi Daftar item vs. Tuple
list_num(2) = 5 print(list_num) tup_num(2) = 5
Keluaran:
(1,2,5,4) Traceback (panggilan terakhir terakhir): File "python", baris 6, di TypeError: objek 'tuple' tidak mendukung penetapan item
Dalam kode di atas kami menetapkan 5
ke list_num di indeks 2
dan kami menemukan 5
di indeks 2
dalam output. Juga, kami menetapkan 5
ke tup_num di indeks 2
dan kami mendapatkannya type error
. Kami tidak dapat memodifikasi tupel karena sifatnya yang tidak dapat diubah.
Catatan: Karena tupel tidak dapat diubah, ukurannya tetap dan ukurannya bervariasi.
Operasi yang Tersedia
Daftar memiliki lebih banyak fungsi bawaan daripada tupel. Kita dapat menggunakan dir((object))
fungsi inbuilt untuk mendapatkan semua fungsi terkait untuk list dan tuple.
Contoh 3.1: Direktori Daftar
dir(list_num)
Keluaran:
('__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__ ' , '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'tambahkan', 'hapus' salin ',' hitung ',' perpanjang ',' indeks ','masukkan ',' pop ',' remove ',' reverse ',' sort ')
Contoh 3.2: Direktori Tuple
dir(tup_num)
Keluaran:
('__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnew __gt__ ',' __hash__ ',' __init__ ',' __init_subclass__ ',' __iter__ ',' __le__ ',' __len__ ',' __lt__ ',' __mul__ ',' __ne__ ',' __new__ ',' __reduce____ , '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'indeks')
Kita dapat melihat dengan jelas bahwa, ada begitu banyak fungsi tambahan yang terkait dengan daftar di atas tuple. Kita dapat melakukan operasi penyisipan dan pop, menghapus dan menyortir elemen dalam daftar dengan fungsi bawaan yang tidak tersedia di Tuple.
Perbandingan Ukuran
Operasi Tuple memiliki ukuran yang lebih kecil daripada list, yang membuatnya sedikit lebih cepat tetapi tidak terlalu banyak untuk disebutkan sampai Anda memiliki sejumlah 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__())
Keluaran:
a = 104 b = 120
Pada kode di atas kita memiliki tuple a dan list b dengan item yang sama tetapi ukuran tuple lebih kecil dari daftar.
Kasus Penggunaan yang Berbeda
Pada pandangan pertama, sepertinya list selalu dapat menggantikan tupel. Tetapi tupel adalah struktur data yang sangat berguna
- Menggunakan tuple sebagai pengganti list dapat memberikan petunjuk kepada programmer dan interpreter bahwa data tidak boleh diubah.
- Tuple biasanya digunakan sebagai padanan kamus tanpa kunci untuk menyimpan data. Sebagai contoh,
(('Swordfish', 'Dominic Sena', 2001), ('Snowden', 'Oliver Stone', 2016), ('Taxi Driver', 'Martin Scorsese', 1976))
Contoh di atas berisi tuple inside list yang memiliki daftar film. - Membaca data lebih mudah ketika tupel disimpan di dalam daftar. Sebagai contoh,
((2,4), (5,7), (3,8), (5,9))
lebih mudah dibaca daripada((2,4), (5,7), (3,8), (5,9))
Tuple juga dapat digunakan sebagai kunci dalam kamus karena sifatnya yang tidak dapat diubah dan tidak dapat diubah sedangkan Daftar tidak digunakan sebagai kunci dalam kamus karena daftar tidak dapat menangani __hash__()
dan memiliki sifat yang dapat berubah.
key_val= (('alpha','bravo'):123) #Valid key_val = (('alpha','bravo'):123) #Invalid
Poin utama yang perlu diingat:
- Sintaks literal tupel ditunjukkan dengan tanda kurung
()
sedangkan sintaks literal daftar ditunjukkan dengan tanda kurung siku()
. - Daftar memiliki panjang variabel, tupel memiliki panjang tetap.
- List memiliki sifat yang dapat berubah, tupel memiliki sifat yang tidak dapat diubah.
- List memiliki lebih banyak fungsi daripada tupel.