Python 101: List & Tuple

List & tuple adalah tipe data yang mirip Array di JavaScript. List seperti Array biasa. Kita bisa nambah elemen & ngapus elemen. Tuple adalah list yang konstan, kalo udah dibuat nggak bisa diubah-ubah lagi. List & tuple bisa dikombinasi. List bisa berisi tuple & sebaliknya.

Untuk bikin list kita pake notasi [ ]. Untuk tuple kita pake ( ).

mylist = [ 1, 2, 3 ]
mytuple = ( 4, 5, 6 )

Elemen-elemen dalam list & tuple bisa diakses lewat nomer indeksnya, sama kayak Array. Tapi indeksnya ga harus positif, bisa juga negatif. Kalo negatif berarti itu indeks dihitung dari belakang, -1 berarti elemen paling belakang.

mylist[-1] #3
mytuple[-2] #5

Operasi Dasar

Karena list adalah sebuah deretan nilai, dia punya beberapa fungsi yang sama dengan String.

Untuk ngecek panjang list / tuple, kita pake len().

print(len([ 'a', 'b', 'c' ])) 

#output
3

List & tuple juga bisa dikonkatenasi ( digabung ) mirip string. Operatornya sama, +. Tapi list hanya bisa digabung dengan list, tuple dengan tuple. Ga bisa dicampur.

mylist = ['a','b','c','d']
mylist2 = ['e', 'f']
mytuple = ('x', 'y', 'z')
mytuple2 = ('s', 't', 'u')


print(mylist + mylist2)
print(mytuple + mytuple2)

# output
['a', 'b', 'c', 'd', 'e', 'f']
('x', 'y', 'z', 's', 't', 'u')

Keduanya juga mendukung repetisi.

mylist = ['a', 'b', 'c']

print(mylist * 3)

# output
['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']

Iterasi

Untuk jalanin iterasi atas elemen-elemen list & tuple, kita pake for-loop.

mylist = [ 1, 2, 3 ]
for el in mylist:
  print(el)

# output
1
2
3

Kalo kita perlu nomor indeksnya juga, nggak hanya nilainya, kita pake fungsi enumerate().

mylist = [ 1, 2, 3]
for index, el in enumerate(mylist):
  print(index, el)

#output
0 1
1 2
2 3

Unpacking

Kalo di JavaScript ada destructuring, di Python ada yang disebut unpacking.

mylist = [ 1, 2, 3, ('hello', 'world')]
a,b,c,d  = mylist

print(a) 
print(b) 
print(c)
print(d)

# output
1
2
3
('hello', 'world')

Kalo jumlah variabelnya kebanyakan, bakal ada ValueError.

mylist = [ 1, 2, 3, ('hello', 'world')]
a,b,c,d,e  = mylist

# output
ValueError: not enough values to unpack (expected 5, got 4)

Slicing

Khusus untuk list, kita bisa bikin slice. Slice di Python mirip sama splice() yang ada di JavaScript. Untuk operasi slice, kita tentuin dua parameter:
1. Dua indeks [a:b]. Yang diganti nanti mulai indeks a sampe indeks b-1. Kalo parameter b nggak ditentuin, yang diganti nantinya elemen dari indeks a sampe indeks terakhir.
2. Elemen baru yang dimasukin. Bisa list kosong, kalo kita cuma mau menghapus elemen.

mylist = ['a', 'b', 'c']

# hapus elemen dari indeks 0 sampe indeks 1
# nggak ada elemen baru yang dimasukin
mylist[0:2] = [] 

print(mylist)

# output
['c']

Contoh di bawah ini untuk ganti elemen di list dengan elemen baru.

mylist = ['a', 'b', 'c', 'd', 'e']

# hapus elemen dari indeks 1 sampe indeks 2
# masukin elemen baru ke bagian yang udah dihapus
mylist[1:3] = ['x','y','z']

print(mylist)

# output
['a', 'x', 'y', 'z', 'd', 'e']

Kalo digambarin, kode di atas kurang lebih begini:

Kode di bawah mengganti semua elemen dari indeks 1 sampe yang terakhir.

mylist = ['a', 'b', 'c', 'd', 'e']

mylist[1:] = ['x','y','z']

print(mylist)

# output
['a', 'x', 'y', 'z']

Kode di bawah mengganti semua elemen kecuali yang terakhir.

mylist = ['a', 'b', 'c', 'd', 'e']

mylist[:-1] = ['x','y','z']

print(mylist)

# output
[ 'x', 'y', 'z', 'e']

Operasi List yang Lain

Menghapus elemen

Selain pake metode slicing, kita bisa menghapus elemen pake fungsi del().

mylist = ['a', 'b', 'c','d','e']

# hapus elemen di indeks 1 - 3
del(mylist[1:4])

print(mylist)

# output
['a', 'e']

del bisa juga dijalanin tanpa kurung. Kode di atas bisa juga ditulis: del mylist[3].

Membuat Duplikat (Kopi)

Untuk bikin duplikat list kita pake fungsi copy(). Fungsi ini juga tersedia untuk tuple.

mylist = ['a', 'b', 'c','d','e']

mylistcopy = mylist.copy()

print(mylist)
print(mylistcopy)

print(mylist is mylistcopy)

# output
['a', 'b', 'c', 'd', 'e']
['a', 'b', 'c', 'd', 'e']
False

Kalo mau menghapus semua elemen, kita bisa pake cara slicing atau pake fungsi clear().

mylist = ['a', 'b', 'c','d','e']

# hapus semua elemen metode slicing
del mylist[:]

# sama dengan
mylist.clear()

print(mylist)

# output
[]

Menghitung elemen

Fungsi count() bisa kita pake untuk mencari ada berapa suatu objek/nilai dalam sebuah list. Fungsi ini juga tersedia untuk tuple.


mylist = ['a', 'b', 'c', 'd', 'e', 'b', 'b'] print(mylist.count('b')) #output 3

Masukin Elemen Baru

Di JavaScript kita pake push() & shift() untuk masukin elemen baru di belakang atau di depan Array, di Python kita pake append() & insert().

mylist = ['a', 'b', 'c','d','e']

# push di JS
mylist.append(100)

# shift di JS
mylist.insert(0, 234)

# splice(2,0,999) di JS
mylist.insert(2,999)

print(mylist)

# output
[234, 'a', 999, 'b', 'c', 'd', 'e', 100]

Ngeluarin Elemen

Di JavaScript kita pake pop(), unshift(), atau splice() untuk ngeluarin elemen dari Array. Di sini kita hanya perlu pake pop().

mylist = ['a', 'b', 'c','d','e']

# sama dengan pop di JS
val = mylist.pop()
print(val)
print(mylist)

# output
e
['a', 'b', 'c', 'd']


# unshift di JS
val = mylist.pop(0)
print(val)
print(mylist)

# output
a
['b', 'c', 'd']


# splice(1,1) di JS
val = mylist.pop(1)
print(val)
print(mylist)

#output
c
['b', 'd']

Sekian dulu. Kapan-kapan lanjut lagi.

Also in this category ...


Leave a Reply

Your email address will not be published. Required fields are marked *