Menu

List di Python: cara membuat, mengakses indeks, append, sort, dan iterasi

Tur praktis list Python, koleksi yang paling umum: membuat list, indeks, slicing, append, sort, dan pola-pola yang paling sering kamu pakai.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

List adalah deretan yang berurutan dan bisa diubah

List adalah tipe koleksi yang paling banyak dipakai di Python. Kalau kamu menyimpan sekumpulan nilai berurutan yang mungkin berubah (ditambah, dihapus, diurutkan, diperbarui), list hampir selalu pilihan yang tepat.

Kamu membuatnya dengan kurung siku:

List bisa menyimpan apa saja, bahkan list lain. Dalam praktiknya, kebanyakan list akhirnya berisi satu jenis data, misalnya daftar pengguna atau daftar angka, karena itulah yang paling mudah dipahami.

Indeks

Setiap item punya posisi, dimulai dari 0. Akses dengan kurung siku:

Meminta indeks yang tidak ada akan memunculkan IndexError. Kalau indeksnya mungkin di luar rentang, cek panjangnya dulu atau bungkus aksesnya dengan try.

Slicing

Slicing memberimu rentang item. Sintaksnya list[start:stop:step], sama seperti string:

Dua hal yang perlu kamu ingat baik-baik:

  • Slicing selalu mengembalikan list baru. Mengubah hasil slice tidak memengaruhi list aslinya.
  • Indeks stop tidak ikut dihitung: nums[2:5] memberi indeks 2, 3, dan 4, bukan 5.

Cara append, extend, dan insert item

Ketiga method untuk "menambah ke list" melakukan hal yang berbeda, dan tertukar di antara ketiganya adalah sumber bug yang umum:

  • append(x) menambahkan x sebagai satu elemen, walaupun x adalah list. items.append([1, 2]) menambahkan list itu sendiri sebagai satu entri.
  • extend(iterable) menambahkan setiap item dari iterable itu. items.extend([1, 2]) menambahkan dua entri.
  • insert(i, x) menyisipkan di indeks tertentu, menggeser semua item di posisi i dan sesudahnya satu posisi ke kanan.

+= dengan list di sebelah kanan bekerja seperti extend:

Dan untuk menghapus:

Kalau kamu mencoba remove() sesuatu yang tidak ada di list, Python memunculkan ValueError. Kalau kamu butuh "hapus kalau ada", cek dulu dengan in atau pakai try.

Kamu juga bisa menghapus berdasarkan indeks dengan del:

Panjang, keanggotaan, menghitung

in adalah cara yang mudah dibaca untuk mengecek apakah sebuah list berisi suatu nilai. Kalau kamu akan menanyakan hal itu berkali-kali pada list yang besar, pakai set: pengecekan keanggotaan set bernilai O(1), sedangkan list O(n).

Mengurutkan

Ada dua cara, dan pilihannya penting:

Keduanya menerima reverse=True untuk urutan menurun:

Dan fungsi key untuk urutan khusus:

key diterapkan ke setiap item, dan hasilnya yang dibandingkan. Kasus yang umum: mengurutkan berdasarkan panjang, berdasarkan atribut tertentu, atau berdasarkan bentuk huruf kecil dari sebuah string.

Membalik urutan

Ada tiga cara, tergantung apa yang kamu butuhkan:

Pakai cara yang mengubah langsung kalau kamu tidak butuh list aslinya. Pakai slicing kalau kamu ingin salinan baru. Pakai reversed() kalau kamu hanya perlu iterasi terbalik tanpa membuat list baru.

Jebakan referensi bersama

List bersifat mutable, dan variabel adalah referensi. Artinya dua variabel bisa menunjuk ke list yang sama:

b = a tidak menyalin list-nya; ia hanya membuat b menjadi nama kedua untuk list yang sama. Kalau kamu ingin salinan, mintalah secara eksplisit:

Jebakan ini menimpa setiap programmer Python setidaknya sekali. Ingat: = di antara dua list tidak menyalin.

Perulangan dan membangun list

Kamu sudah tahu pola dasarnya dari halaman for loop:

Kode itu mudah dibaca dan akan selalu baik-baik saja. Begitu kamu sudah terbiasa, list comprehension yang setara melakukan hal yang sama dalam satu baris:

Kita akan membahas comprehension secara lengkap dua halaman lagi.

Cheat sheet singkat

Method yang perlu kamu tahu, sekilas:

  • append(x): tambahkan di akhir
  • extend(iter): tambahkan setiap item dari sebuah iterable
  • insert(i, x): sisipkan di indeks i
  • pop() / pop(i): hapus dan kembalikan
  • remove(x): hapus kemunculan pertama x
  • sort() / sort(key=...) / sort(reverse=True)
  • reverse()
  • index(x): posisi x yang pertama
  • count(x): jumlah x
  • copy(): salinan dangkal (shallow copy)

Berikutnya

List adalah andalan sehari-hari. Berikutnya kita akan melihat tuple, sepupunya yang tidak bisa diubah, dan kapan memakai tuple adalah pilihan yang lebih baik.

Pertanyaan yang sering diajukan

Bagaimana cara membuat list di Python?

Pakai kurung siku dengan nilai-nilai yang dipisahkan koma: fruits = ['apple', 'banana', 'cherry']. List bisa menyimpan tipe apa pun, dan kamu bisa mencampur tipe dalam list yang sama, meskipun kebanyakan list sungguhan berisi satu jenis data karena kebiasaan.

Bagaimana cara mengurutkan list di Python?

Panggil .sort() pada list untuk mengurutkannya secara langsung, atau pakai fungsi bawaan sorted(list) untuk mendapat list baru yang sudah diurutkan tanpa mengubah aslinya. Keduanya menerima reverse=True untuk urutan menurun dan argumen key= untuk kunci pengurutan khusus.

Bagaimana cara membalik list di Python?

list.reverse() membalik list secara langsung. list[::-1] mengembalikan list baru yang terbalik. reversed(list) mengembalikan iterator yang bisa kamu pakai dalam perulangan. Pilih yang sesuai kebutuhanmu: mengubah langsung, salinan baru, atau iterasi lazy.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai