Operasi pada List dan Manipulasi String
Operasi pada urutan (sequences: List, Set, String)
len()
Sebelumnya pada pembahasan urutan (sequences), Anda sudah mengetahui bahwa slicing digunakan untuk urutan. Salah satu fungsi yang paling bermanfaat untuk List atau String adalah len() yang akan menghitung panjang atau banyaknya elemen dari List (untuk String menjadi menghitung jumlah karakternya).
- l = [1,2,3,3,4,4,4,4,5,6]
- s = set(l)
- x = "Hello, World"
- print(l)
- print(len(l))
- print(s)
- print(len(s))
- print(x)
- print(len(x))
Output:
[1, 2, 3, 3, 4, 4, 4, 4, 5, 6] 10 {1, 2, 3, 4, 5, 6} 6 Hello, World 12 |
Penggabungan dan Replikasi
Pada List juga dimungkinkan adanya penggabungan (+) dan replikasi (*).
- [1, 2, 3] + ['A', 'B', 'C']
Output:
[1, 2, 3, 'A', 'B', 'C'] |
- ['X', 'Y', 'Z'] * 3
Output:
['X', 'Y', 'Z', 'X', 'Y', 'Z', 'X', 'Y', 'Z'] |
- spam = [1, 2, 3]
- spam = spam + ['A', 'B', 'C']
- spam
Output:
[1, 2, 3, 'A', 'B', 'C'] |
Fungsi pengali juga dapat Anda manfaatkan untuk inisialisasi List.
- arr = [0]*10
- len(arr)
- arr
Output:
10 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] |
Range
Fungsi range() memberikan deret bilangan dengan pola tertentu. Untuk melakukan perulangan (misalnya for) dalam mengakses elemen list, Anda dapat menggunakan fungsi range() pada Python. Lebih detail mengenai operasi perulangan akan dibahas pada modul Perulangan dan Kontrol Perulangan.
Fungsi range dapat memiliki 1-3 parameter:
- Range dengan 1 parameter n: membuat deret bilangan yang dimulai dari 0, sebanyak n bilangan.
- for i in range(9):
- print(i)
Output:0
1
2
3
4
5
6
7
8 - Range dengan 2 parameter n,p: membuat deret bilangan yang dimulai dari n, hingga sebelum p (bilangan p tidak ikut). Sering disebut sebagai inklusif n (deret dimulai bilangan n) dan eksklusif p (deret tidak menyertakan bilangan p).
- for i in range(3, 9):
- print(i)
Output:3
4
5
6
7
8 - Range dengan 3 parameter n,p,q: membuat deret bilangan yang dimulai dari n, hingga sebelum p (bilangan p tidak ikut), dengan setiap elemennya memiliki selisih q.
- [_ for _ in range(1, 9, 2)] # list comprehension
Output:[1, 3, 5, 7]
in dan not in
Untuk mengetahui sebuah nilai atau objek ada dalam list, Anda dapat menggunakan operator in dan not in. Fungsi ini akan mengembalikan nilai boolean True atau False. Contohnya adalah sebagai berikut:
- 'howdy' in ['hello', 'hi', 'howdy', 'heyas']
Output:
True |
- spam = ['hello', 'hi', 'howdy', 'heyas']
- 'cat' in spam
Output:
False |
- 'howdy' not in spam
Output:
False |
- 'cat' not in spam
Output:
True |
Memberikan nilai (assignment) untuk lebih dari 1 variabel sekaligus
Anda dapat memberikan nilai ke beberapa variabel sekaligus dari element List atau Tuple. Sehingga tanpa perlu menandai satu-per-satu seperti:
- cat = ['fat', 'orange', 'loud']
- size = cat[0]
- color = cat[1]
- disposition = cat[2]
Anda dapat melakukannya:
- cat = ['fat', 'orange', 'loud'] # From List
- size, color, disposition = cat
- cat = ('fat', 'orange', 'loud') # From Tuple
- size, color, disposition = cat
Tentu saja jumlah variabel dan jumlah item pada List/Tuple harus sama. Jika tidak, Python akan memberikan ValueError. Bagian ini hanya memberikan gambaran tentang operasi pada List/Tuple, Anda akan mempelajari lebih jauh tentang kesalahan (Error) di modul Penanganan Kesalahan.
- cat = ['fat', 'orange', 'loud']
- size, color, disposition, name = cat
Output:
Traceback (most recent call last): File "<pyshell#84>", line 1, in <module> size, color, disposition, name = cat ValueError: need more than 3 values to unpack |
Tip: Penggunaan assignment pada multi variabel ini dapat Anda gunakan untuk menukar nilai dua atau lebih variabel:
- a, b = 'Alice', 'Bob'
- a, b = b, a
- print(a)
- print(b)
Bob Alice |
Sort
List dapat diurutkan dengan method sort(). Contohnya:
- x = [2, 5, 3.14, 1, -7]
- x.sort()
- x
Output:
[-7, 1, 2, 3.14, 5] |
- y = ['ants', 'cats', 'dogs', 'badgers', 'elephants']
- y.sort()
- y
Output:
['ants', 'badgers', 'cats', 'dogs', 'elephants'] |
Anda dapat memasukkan keyword reverse=True untuk menjadikan urutan yang sebaliknya.
- y.sort(reverse=True)
- y
Output:
['elephants', 'dogs', 'cats', 'badgers', 'ants'] |
Tiga hal yang perlu Anda ingat dalam metode sort:
- Metode sort langsung melakukan pengurutan pada variabel yang dioperasikannya, sehingga tidak perlu operasi assignment (=).
- Metode sort tidak dapat mengurutkan list yang memiliki angka dan string sekaligus di dalamnya. Output:
- z = [1, 3, 2, 4, 'Alice', 'Bob']
- z.sort()
Bagian ini hanya memberikan gambaran tentang operasi sort, Anda akan mempelajari lebih jauh tentang kesalahan (Error) di modul Penanganan Kesalahan.Traceback (most recent call last):
File "<pyshell#70>", line 1, in <module>
z.sort()
TypeError: unorderable types: str() < int()
- Metode sort menggunakan urutan ASCII, sehingga nilai huruf kapital (uppercase) akan lebih dahulu dibandingkan huruf kecil (lowercase). Contohnya:Output:
- m = ['Alice', 'ants', 'Bob', 'badgers', 'Carol', 'cats']
- m.sort()
- m
['Alice', 'Bob', 'Carol', 'ants', 'badgers', 'cats'] Untuk mengatasi kendala ini, Anda dapat memasukkan keyword str.lower sebagai argumen metode sort. Hal ini akan membuat metode sort menganggap semua objek menggunakan huruf kecil, tanpa mengubah kondisi asli dari objek tersebut.Output:- spam = ['a', 'z', 'A', 'Z']
- spam.sort(key=str.lower)
- spam
['a', 'A', 'z', 'Z']
Manipulasi String
String atau teks adalah salah satu bentuk data yang akan Anda olah dalam program. Anda dapat melakukan penggabungan, pemisahan, sub-string, penambahan/pengurangan spasi, konversi huruf kapital, format strings, dan sebagainya.
String Literals
Umumnya, string ditulis dengan mudah di Python, diapit oleh tanda petik tunggal. Tetapi, dalam kondisi tertentu, dibutuhkan petik tunggal di tengah string (misalnya struktur kepemilikan dalam Bahasa Inggris - That’s Alice’s Cat). Apabila kita menuliskannya sebagai 'That is Alice's cat.', maka Python akan salah mengira bahwa string berakhir di Alice, dan selebihnya merupakan kode yang invalid.
Namun Python memperbolehkan Anda menggunakan petik dua seperti Anda menggunakan petik tunggal. Dalam kasus sebelumnya, Anda cukup mengetikkan:
- st = "That is Alice's cat."
Dan dalam contoh tersebut, Python mengenali bahwa petik tunggal adalah bagian tidak terpisahkan dari string tersebut. Bagaimana jika kita memerlukan kedua jenis petik dalam string tunggal? Python menyediakan escape character.
Escape Character memungkinkan Anda untuk menggunakan karakter yang sebelumnya tidak bisa dimasukkan dalam string. Umumnya diawali dengan backslash (\) dan diikuti karakter tertentu yang diinginkan. Contohnya, untuk petik tunggal Anda dapat menambahkan seperti : \'.
Cara ini merupakan cara paling aman untuk melakukan penambahan atau penyuntingan dalam variabel. Contohnya sebagai berikut:
- st = 'Say hi to Bob\'s mother.'
Python mengetahui bahwa pada Bob\’s, sebelum petik terdapat backslash (\) yang menandakan petik tunggal merupakan bagian dari string dan bukan merupakan akhir dari string. Escape character \' dan \" memungkinkan Anda untuk memasukkan karakter ' dan '' dalam bagian string. Beberapa contoh Escape Character
- \' Single quote
- \" Double quote
- \t Tab
- \n Newline (line break)
- \\ Backslash
Masukkan contoh berikut pada shell python atau notebook:
- print("Hello there!\nHow are you?\nI\'m doing fine.")
Output:
Hello there! How are you? I'm doing fine. |
Selain tanda kutip dan kutip-dua, untuk penulisan String di Python juga bisa menggunakan 3 kutip-satu atau 3 kutip-dua, yang juga memiliki kemampuan untuk menyimpan String lebih dari satu baris (multi-line).
- multi_line = """Hello there!
- How are you?
- I'm fine."""
- print(multi_line)
Output:
Hello there! How are you? I'm fine. |
Raw Strings
Sebaliknya, Python juga menyediakan cara untuk memasukkan string sesuai dengan apapun input atau teks yang diberikan. Metode ini dinamakan Raw Strings. Umumnya digunakan untuk regex atau beberapa implementasi lain yang sangat bergantung pada keberadaan backslash. Untuk menjadikan raw string, tambahkan huruf r sebelum pembuka string:
- print(r'That is Carol\'s cat.')
Output:
That is Carol\'s cat. |
Posting Komentar untuk "Operasi pada List dan Manipulasi String"