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' >>> 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'] 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
List SearchingUntuk 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 ItemUntuk 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 ListSyntax 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
>>> 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 sortingReverse 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 ComprehensionTujuannya adalah agar kode program lebih ringkas dan mudah terbaca. Namun kadang bisa membingungkan bila digunakan terlalu extensive. |