Cara menggunakan set comprehension in python

Python list lanjutan akan membahas fungsi untuk list lebih advanced. Seperti sudah dibahas pada lesson sebelumnya, list adalah heterogeneous mutable sequence. Pada lesson ini, akan dibahas sedikit fungsi untuk manipulasi list.

Pertama, buat list dari string dengan menggunakan method split. Lalu akses isi list dengan menggunakan index (python adalah zero based index).

List juga dapat diakses melalui indexing negatif, mengakses isi list dari akhir list. Untuk negatif indexing one based indexing (karena tidak ada perbedaan 0 dan -0)

>>> s = "show how to index into sequences".split()
>>> s
['show', 'how', 'to', 'index', 'into', 'sequences']
>>> s[4]
'into'
>>> s[-5]
'how'
>>>

Cara menggunakan set comprehension in python

Slicing adalah cara mengakses list dengan memberikan parameter start dan stop index, keduanya adalah opsional. Dapat menggunakan negatif indexing juga. Selain itu bisa hanya memasukan paramater start saja.

Contoh: mengambil isi list tanpa awal dan akhir, pada programming lain perlu dilakukan iterasi, pada Python, cukup menggunakan s[1:-1], hasil adalah list tanpa mengambil isi awal dan akhir.

>>> s[1:4]
['how', 'to', 'index']
>>> s[1:-1]
['how', 'to', 'index', 'into']
>>> s[3:]
['index', 'into', 'sequences']
Cara menggunakan set comprehension in python

Slicing dapat digunakan untuk mencopy isi list ke objek list baru. Caranya dengan memberikan blank start dan stop index.

>>> new_copy_list = s[:]
>>> new_copy_list is s
False
>>> new_copy_list == s
True

Untuk mencopy list, masih ada cara lain yang lebih dapat dimengerti dan terbaca maksudnya. Dengan menggunakan metode copy atau list constructor.

>>> u = s.copy()
>>> u
['show', 'how', 'to', 'index', 'into', 'sequences']
>>> u is s
False
>>> u == s
True
>>> v = list(s)
>>> v
['show', 'how', 'to', 'index', 'into', 'sequences']
>>> v is s
False
>>> v == s
True

Perlu diperhatikan, ketiga metode copy diatas hanya membuat objek baru untuk list teratas saja, proses copy adalah shallow .

List Searching

Untuk mencari elemen dalam list gunakan perintah index(“kata yang akan dicari”).

Return value adalah integer dari index. Pada prakteknya, bisa saja kata yang dicari tidak ada, harus dibuat error handling.

Lihat contoh dibawah, bila tidak dilakukan error handling, maka Python akan menampilkan error, pada program production, maka pengguna akan keluar dari program.

Menghitung jumlah kata tertentu dalam sebuah list juga dapat dilakukan dengan metode count. Lihat contoh dibawah.

Penggunaan in operator digunakan untuk memeriksa apakah suatu item terdapat dalam list.

>>> w = "the quick brown fox jumps over the lazy dog".split()
>>> w
['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']
>>> i = w.index('fox')
>>> i
3
>>> w[i]
'fox'
>>> w.index('cat')
Traceback (most recent call last):
  File "", line 1, in 
ValueError: 'cat' is not in list
>>> w.count('the')
2
>>> 44 in [1, 4, 3, 22, 77]
False
>>> 44 not in [1, 4, 2, 22, 77]
True

Delete List Item

Untuk menghapus isi list dapat menggunakan metode del atau remove. Syntaxnya seperti berikut del list[index] atau list.remove(‘kata yang ingin dihapus’)

Dapat digabungkan dengan searching, dimana returnnya berupa index yang menjadi input untuk fungsi del.

Diperlukan error handling saat melakukan penghapusan item list. Karena pada saat program live, bisa saja kata yang hendak dicari tidak ada. (lihat penjelas error handling diatas).

>>> u = "saya suka berlibur ke pulau bali yang eksotis".split()
>>> u
['saya', 'suka', 'berlibur', 'ke', 'pulau', 'bali', 'yang', 'eksotis']
>>> del u[3]
>>> u
['saya', 'suka', 'berlibur', 'pulau', 'bali', 'yang', 'eksotis']
>>> u.remove('saya')
>>> u
['suka', 'berlibur', 'pulau', 'bali', 'yang', 'eksotis']
>>> del u[u.index('eksotis')]
>>> u
['suka', 'berlibur', 'pulau', 'bali', 'yang']
>>> u.remove('jakarta')
Traceback (most recent call last):
  File "", line 1, in 
ValueError: list.remove(x): x not in list

Insert List

Syntax untuk menambahkan item list adalah seperti berikut list.insert(index, “kata yang ingin disisipkan”). Perlu diperhatikan, index adalah zero based index.

List juga dapat kita ubah menjadi str dengan menggunakan fungsi join, pada contoh dibawah item pada list digabungkan dengan spasi ” ” sebagai separator.

>>> a = "Saya gak sengaja alam semesta".split()
>>> a
['Saya', 'gak', 'sengaja', 'alam', 'semesta']
>>> a.insert(3, "mengacaukan")
>>> a
['Saya', 'gak', 'sengaja', 'mengacaukan', 'alam', 'semesta']
>>> ' '.join(a)
'Saya gak sengaja mengacaukan alam semesta'

Menggabungkan List

  • Concatenate menggunakan operator +
  • Untuk extend, menggunakan operator += atau metode extend()
>>> a = [1, 2]
>>> b = [3, 4]
>>> c = a + b
>>> c
[1, 2, 3, 4]
>>> c += [5, 6]
>>> c
[1, 2, 3, 4, 5, 6]
>>> c.extend([7, 8, 9])
>>> c
[1, 2, 3, 4, 5, 6, 7, 8, 9]

List reverse dan sorting

Reverse hanya membalikan urutan item dari list tanpa peduli dengan order, sementara sorting adalah mengatur order dari list, apakah itu ascending atau descending.

Untuk metode sort menerima 2 argument, key dan reverse. Jika reverse=True maka descending dan sebaliknya.

sorted() adalah built-in function untuk melakukan sorting pada iterable objek dan mengembalikannya sebagai list

reversed() built-function untuk membalikan isi item dari list, return dari fungsi ini adalah reserved_list, perlu menggunakan constructor list() untuk melihat isinya.

>>> a = [1, 2, 5, 3]
>>> a.reverse()
>>> a
[3, 5, 2, 1]
>>> b = [23, 12, 33, 56, 21, 44]
>>> b.sort()
>>> b
[12, 21, 23, 33, 44, 56]
>>> b.sort(reverse=True)
>>> b
[56, 44, 33, 23, 21, 12]
>>> x = [4, 3, 7, 2, 10]
>>> y = sorted(x)
>>> y
[2, 3, 4, 7, 10]
>>> r = [3, 2, 4, 1]
>>> s = reversed(r)
>>> s
<list_reverseiterator 0x00594370="" at="" object="">
>>> list(s)
[1, 4, 2, 3]

List Comprehension

Tujuannya adalah agar kode program lebih ringkas dan mudah terbaca. Namun kadang bisa membingungkan bila digunakan terlalu extensive.