Bahasa Python - List dan String

String adalah urutan karakter dan list adalah urutan value atau nilai, tetapi karakter list tidak sama dengan string. Untuk mengkonversi dari string ke karakter list, Anda dapat menggunakan list:

s = 'belajar'
t = list(s)
print(t)
['b', 'e', 'l', 'a', 'j', 'a', 'r']

Karena list adalah nama fungsi bawaan, Anda harus menghindari menggunakannya sebagai nama variabel. Sebaiknya juga menghindari huruf “I” karena terlalu mirip dengan angka “1”. Jadi itulah mengapa dicontoh diatas menggunakan “t”. Fungsi list dapat memecah string menjadi huruf-huruf tersendiri. Jika Anda ingin memecah string menjadi kata-kata, Anda dapat menggunakan metode pemisahan atau split metode:

s = 'belajar python itu bisa'
t = s.split()
print(t)
['belajar', 'python', 'itu', 'bisa']
s = 'belajar python itu bisa'
t = s.split()
print(t[2])
itu

Setelah Anda menggunakan split untuk split string menjadi list kata, Anda dapat menggunakan operator indeks (square bracket) untuk melihat kata tertentu dalam list. Anda dapat memanggil split dengan argumen opsional yang disebut delimiter yang menentukan karakter mana yang digunakan sebagai batas kata. Contoh berikut menggunakan tanda hubung sebagai delimiter:

>>> s = 'test-test-test'
>>> delimiter = '-'
>>> s.split(delimiter)
['test', 'test', 'test']

join adalah kebalikan dari split. Diperlukan list pada string dan menggabungkan elemen-elemen. join adalah metode string, jadi Anda harus memohonnya(invoke) pada delimiter dan meneruskan list sebagai parameter:

>>> t = ['ayo', 'belajar', 'python', 'everybody']
>>> delimiter = ' '
>>> delimiter.join(t)
'ayo belajar python everybody'

Dalam hal ini delimiter adalah karakter spasi, jadi join menempatkan spasi di antara kata-kata. Untuk menggabungkan string tanpa spasi, Anda dapat menggunakan string kosong atau empty string, “”, sebagai delimiter.

Jika kita menjalankan statement penugasan seperti ini:

  • a = ‘pisang’
  • b = ‘pisang’

Kita tahu bahwa a dan b keduanya merujuk ke string, tetapi kami tidak tahu apakah mereka merujuk ke string yang sama. Ada dua kemungkinan status:

box1

Dalam satu kasus, a dan b merujuk pada dua objek berbeda yang memiliki nilai yang sama. Dalam kasus kedua, mereka mengacu pada objek yang sama. Untuk memeriksa apakah dua variabel mengacu pada objek yang sama, Anda dapat menggunakan operator tersebut.

>>> a = 'banana'
>>> b = 'banana'
>>> a is b
True

Dalam contoh ini, Python hanya membuat satu objek string, dan keduanya a dan b merujuknya. Tetapi ketika Anda membuat dua list, Anda mendapatkan dua objek:

>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a is b
False

Dalam hal ini kita akan mengatakan bahwa kedua list itu setara, karena mereka memiliki elemen yang sama, tetapi tidak identik, karena mereka bukan objek yang sama. Jika dua objek identik, mereka juga setara, tetapi jika keduanya ekuivalen, keduanya tidak selalu identik. Hingga saat ini, kami telah menggunakan “objek” dan “value” secara bergantian, tetapi lebih tepat untuk mengatakan bahwa suatu objek memiliki value.

Jika Anda mengeksekusi a = [1,2,3], a mengacu pada list objek yang nilainya merupakan urutan elemen tertentu. Jika ada list lain dengan elemen yang sama, kita akan mengatakan itu memiliki nilai yang sama.

Jika merujuk ke suatu objek dan Anda menetapkan b = a, maka kedua variabel tersebut merujuk ke yang sama obyek:

>>> a = [1, 2, 3]
>>> b = a
>>> b is a
True

Hubungan variabel dengan objek disebut ‘reference’(referensi). Dalam contoh ini, ada dua reference ke objek yang sama. Objek dengan lebih dari satu reference memiliki lebih dari satu nama, jadi kami mengatakan bahwa objek tersebut adalah aliased. Jika objek alias bisa berubah, perubahan yang dibuat dengan satu alias mempengaruhi yang lain

>>> b[0] = 17
>>> print(a)
[17, 2, 3]

Meskipun perilaku ini dapat berguna, itu rawan kesalahan. Secara umum, lebih aman untuk menghindari aliasing ketika Anda bekerja dengan objek yang bisa berubah. Untuk objek yang tidak dapat diubah seperti string, aliasing tidak terlalu bermasalah. Dalam contoh ini:

  • a = ‘pisang’
  • b = ‘pisang’

hampir tidak pernah membuat perbedaan apakah a dan b mengacu pada string yang sama atau tidak.

Ketika Anda melewati list ke fungsi, fungsi mendapat referensi ke list. Jika fungsi memodifikasi parameter list, pemanggil melihat perubahan. Misalnya, delete_head menghapus elemen pertama dari list:

def delete_head(t):
    del t[0]

Berikut ini cara penggunaannya:

>>> letters = ['a', 'b', 'c']
>>> delete_head(letters)
>>> print(letters)
['b', 'c']

Parameter t dan huruf variabel adalah alias untuk objek yang sama. Penting untuk membedakan antara operasi yang memodifikasi list dan operasi yang membuat list baru. Sebagai contoh, metode tambahan memodifikasi list, tetapi operator + membuat daftar baru:

>>> t1 = [1, 2]
>>> t2 = t1.append(3)
>>> print(t1)
[1, 2, 3]
>>> print(t2)
None
>>> t3 = t1 + [3]
>>> print(t3)
[1, 2, 3]
>>> t2 is t3
False

Perbedaan ini penting ketika Anda menulis fungsi yang seharusnya memodifikasi list.

Operator slice membuat list baru dan penugasan membuat ’t’ merujuk padanya, tetapi tidak ada yang berpengaruh pada list yang dilewatkan sebagai argumen. Alternatifnya adalah menulis fungsi yang membuat dan mengembalikan list baru. Misalnya, ‘tail’ mengembalikan semua kecuali elemen pertama dari daftar:

def tail(t):
     return t[1:]

Fungsi ini meninggalkan list asli yang tidak dimodifikasi. Berikut ini cara penggunaannya:

>>> letters = ['a', 'b', 'c']
>>> rest = tail(letters)
>>> print(rest)
['b', 'c']

Oke sampai disini pembahasan kita tentang list, dari sini anda sudah bisa memahami penggunaan list pada python. Materi selanjutnya kita akan membahas tentang dictionaries atau kamus pada python. Selamat belajar