22. List

Sebuah list adalah salah satu struktur data bawaan Python. List menyimpan urutan nilai — angka, string, boolean, atau campuran — dan memungkinkan kamu menambah, menghapus, dan menyusun ulang item dengan bebas.

Membuat list

Literal list menggunakan tanda kurung siku dengan koma di antara nilai-nilainya:

fruits = ["apple", "banana", "cherry"]
print(fruits[0])   # apple
print(fruits[1])   # banana
print(fruits[2])   # cherry

Penting: list Python diindeks dari 0. Item pertama ada di posisi 0, bukan 1. Ini berbeda dari cara kita menghitung dalam kehidupan sehari-hari, jadi hampir semua pemula tersandung hal ini setidaknya sekali.

  • fruits[0] adalah "apple" — item pertama.
  • fruits[1] adalah "banana" — item kedua.
  • fruits[2] adalah "cherry" — item ketiga.

List dengan tiga item memiliki posisi valid 0, 1, dan 2. Posisi 3 tidak ada dan akan memunculkan IndexError.

Panjang dengan len

len(t) mengembalikan jumlah item dalam list:

fruits = ["apple", "banana", "cherry"]
print(len(fruits))        # 3
print(fruits[len(fruits) - 1])   # cherry  (the last one)

Karena indeks valid terakhir selalu len(t) - 1, Python menyediakan pintasan: indeks negatif menghitung dari belakang. t[-1] selalu merupakan item terakhir:

print(fruits[-1])   # cherry
print(fruits[-2])   # banana

Melakukan loop pada list

Dua cara alami untuk menelusuri list.

Loop for

Loop paling sederhana memberikan setiap nilai secara berurutan:

for item in fruits:
    print(item)

Output:

apple
banana
cherry

enumerate — indeks dan nilai sekaligus

Ketika kamu juga butuh posisinya, gunakan enumerate. Secara default penghitungan dimulai dari 0:

for index, value in enumerate(fruits):
    print(index, value)

Output:

0 apple
1 banana
2 cherry

Jika kamu ingin nomor tampilan berbasis 1 (untuk output yang dilihat pengguna), berikan argumen start:

for index, value in enumerate(fruits, 1):
    print(f"{index}. {value}")

Output:

1. apple
2. banana
3. cherry

Buka exercises/22/01-list-loop.py. Tambahkan buah keempat dan jalankan ulang. Baik len(fruits) maupun loop harus menyesuaikan diri secara otomatis.

Menambah dan menghapus item

Tambahkan ke akhir dengan .append:

fruits = ["apple", "banana"]

fruits.append("cherry")    # add to the end
print(fruits[-1])           # cherry

.insert(i, value) menyisipkan di posisi i dan menggeser item berikutnya ke kanan. Ingat: posisi berbasis 0, jadi posisi 0 adalah awal sekali:

fruits.insert(0, "apricot")   # new first item
print(fruits[0])               # apricot
print(fruits[1])               # apple  (shifted from 0 to 1)

.pop() menghapus dan mengembalikan item terakhir. .pop(i) menghapus posisi i:

fruits.pop()     # removes the last item
fruits.pop(0)    # removes the first item

Jangan set slot ke None (fruits[1] = None) untuk "menghapus" item. Itu mengganti nilainya dengan None tapi slot-nya tetap ada, meninggalkan lubang di list kamu. Gunakan .pop(i) atau del fruits[i] untuk menghapus slot secara bersih.

List diteruskan by reference

List berperilaku berbeda dari angka dan string dalam satu hal penting: menugaskan list ke variable lain tidak membuat salinan.

a = [1, 2, 3]
b = a       # b refers to the SAME list
b[0] = 99
print(a[0])   # 99   (the change shows through a too)

Baik a maupun b merujuk ke satu list yang sama. Untuk salinan nyata, gunakan .copy() atau slice a[:]:

c = a.copy()
c[0] = 0
print(a[0])   # 99   (a is unchanged)

Pekerjaan Rumah

Soal 1 — Game favorit

Buka exercises/22/homework/01-favourite-games.py. Buat list berisi lima nama game. Dengan loop for ... in enumerate(..., 1):, cetak masing-masing sebagai 1. Roblox, 2. Minecraft, dan seterusnya.

Soal 2 — Jumlahkan list

Buka exercises/22/homework/02-sum-list.py. Sebuah list angka sudah dideklarasikan di bagian atas. Hitung dan cetak jumlah totalnya.

Soal 3 — Sisipkan dan hapus

Buka exercises/22/homework/03-insert-remove.py. Starter berisi sebuah list pendek. Lakukan empat hal, cetak seluruh list setelah setiap langkah:

  1. Tambahkan item baru ke akhir.
  2. Sisipkan item lain di posisi 0.
  3. Hapus item terakhir.
  4. Hapus item di posisi 1.

Tantangan — Balik list

Buka exercises/22/homework/04-reverse.py. Definisikan function reverse(lst) yang mengembalikan list baru dengan item yang dibalik, tanpa mengubah list aslinya. Uji pada list string dan cetak sebelum dan sesudahnya.

Bingung atau sudah selesai? Buka halaman solusi pekerjaan rumah.