Apa perbedaan python list dan numpy array?

Saat kita pertama kali belajar tentang list dan tuple di Python, banyak dari kita yang masih bingung apa sih perbedaan list dan tuple. List dan tuple merupakan tipe data yang dapat menampung banyak objek. Keduanya juga sama-sama dapat berisi berbagai macam tipe data seperti string, integer, float, boolean, maupun list dan tuple itu sendiri.

List dan tuple juga sama-sama dapat diakses dengan menggunakan indeks. Namun, list dan tuple tetaplah merupakan dua tipe data yang berbeda. Nah, apa perbedaannya? Berikut ini perbedaan list dan tuple.

1. Perbedaan syntax

List dan tuple memiliki sedikit perbedaan syntax atau penulisan. List didefinisikan di dalam sepasang tanda kurung siku [], sedangkan tuple ditulis di dalam sepasang tanda kurung biasa (). Perhatikan contoh berikut.

Ini merupakan contoh penulisan list.

listBilangan = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Dan ini merupakan contoh penulisan tuple.

tupleBilangan = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

Jika kita print, hasilnya akan seperti ini.

print(listBilangan)
print(tupleBilangan)

Output:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

Seperti yang dapat kita lihat di atas, variabel listBilangan dan tupleBilangan sama-sama berisi nilai dari 1 sampai 10, namun penulisannya berbeda. listBilangan didefinisikan menggunakan [], sementara tupleBilangan didefinisikan menggunakan ().

Baca juga: Konsep Regresi Linear: Simple Linear Regression

Kita juga dapat mengecek tipe data dari dua variabel tersebut menggunakan fungsi type() untuk membuktikan bahwa listBilangan dan tupleBilangan memiliki tipe data yang berbeda.

print(type(listBilangan))
print(type(tupleBilangan))

Output:

2. List bersifat mutable dan tuple bersifat immutable

Perbedaan list dan tuple yang kedua yaitu list bersifat mutable yang berarti dapat diubah elemennya, sedangkan tuple bersifat immutable yang berarti tidak dapat diubah elemennya. Misalnya kita akan coba mengubah elemen di indeks 4 pada listBilangan dan tupleBilangan.

Pertama kita akan mengubah elemen di indeks 4 pada listBilangan dengan nilai baru yaitu 100.

listBilangan[4] = 100
listBilangan

Output:
[1, 2, 3, 4, 100, 6, 7, 8, 9, 100]

Dari output di atas, terlihat tidak ada masalah saat kita mengubah nilai pada listBilangan. Sekarang kita akan mencoba dengan cara yang sama pada tupleBilangan.

tupleBilangan[4] = 100
tupleBilangan

Output:
TypeError                                 Traceback (most recent call last)
in
----> 1 tupleBilangan[4] = 100
2 tupleBilanngan

TypeError: 'tuple' object does not support item assignment

Dapat dilihat bahwa, saat kita melakukan cara yang sama pada tupleBilangan, pesan error muncul sebagai tanda bahwa kita tidak bisa mengubah isi dari sebuah tuple.

Jadi, jika kita ingin menyimpan data yang sifatnya permanen dan tidak boleh diubah-ubah, tuple adalah pilihan yang lebih baik dibandingkan list. Sebaliknya, jika menginginkan yang lebih fleksibel yang dapat diubah kapanpun, gunakanlah list.

3. Penggunaan memori untuk tuple lebih sedikit dibandingkan dengan list

Dilihat dari segi konsumsi memorinya, tuple menghabiskan lebih sedikit memori dibandingkan list. Kita dapat mengeceknya menggunakan __sizeof__().

listBilangan = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
tupleBilangan = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
print('Size of listBilangan: ', listBilangan.__sizeof__())
print('Size of tupleBilangan: ', tupleBilangan.__sizeof__())

Output:
Size of listBilangan: 120
Size of tupleBilangan: 104

4. Tuple bisa digunakan sebagai key pada dictionary, sedangkan list tidak bisa

Karena sifatnya yang immutable atau tidak dapat diubah, tuple dapat digunakan sebagai key pada dictionary. Key pada dictionary harus bersifat hashable, artinya objek yang menjadi key harus memiliki nilai hash yang tidak pernah berubah. Hash sendiri adalah suatu kode berupa huruf maupun angka acak yang didapat dari hasil enkripsi.

dic = {('a', 10): 100,
       ('b', 20): 200}
dic

Output:
{('a', 10): 100, ('b', 20): 200}

Sekarang mari kita coba menggunakan list sebagai key.

dic = {['a', 10]: 100,
       ['b', 20]: 200}
dic

Output:
TypeError                                 Traceback (most recent call last)
in
1 dic = {['a', 10]: 100,
----> 2        ['b', 20]: 200}
3 dic

TypeError: unhashable type: 'list'

5. List memiliki lebih banyak built-in function dibandingkan dengan tuple

Perbedaan list dan tuple yang terakhir adalah built-in function yang dimiliki list lebih banyak daripada tuple, artinya lebih banyak operasi yang dapat kita lakukan dengan list dibandingkan dengan tuple. Untuk mengeceknya kita dapat menggunakan fungsi dir().

Mengecek built-in function list

dir(listBilangan)

Output:
['__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',
'copy',
'count',
'extend',
'index',
'insert',
'pop',
'remove',
'reverse',
'sort']

Mengecek built-in function tuple

dir(tupleBilangan)

Output:
['__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']

Apa perbedaan list dan array pada Python?

Array dapat menyimpan elemen hanya dari satu tipe data tetapi list juga dapat menyimpan elemen dari tipe data yang berbeda. Oleh karena itu, Array menyimpan nilai data yang homogen, dan list tersebut dapat menyimpan nilai data yang heterogen.

Apa perbedaan antara array dan linked list?

Array adalah kumpulan objek data yang mirip satu sama lain dan disimpan di lokasi memori secara berurutan. Sementara itu, linked list merupakan sekumpulan data yang berisi urutan elemen dalam strukturnya. Setiap elemen saling terkait dengan elemen berikutnya.

Apa itu array di Python?

Array Python adalah salah satu cara untuk mengorganisir dan menyusun data-data yang ada agar lebih terstruktur dan mudah untuk diakses.

NumPy untuk apa?

NumPy (Numerical Python) adalah library python yang digunakan untuk bekerja dengan array dan juga memiliki fungsi yang bekerja dalam domain aljabar linier, transformasi fourier, dan matriks.