← Semua pembelajaran / Python Dasar
Fase 4 Β· Struktur Data

Mengubah Isi List

Delapan perintah yang menutupi hampir semua kebutuhan sehari-hari, plus satu perbedaan halus yang sering menjebak.

Sumber asli docs.python.org Resmi Rangkuman ~5 menit baca

Intisari

  • Menambah: append() satu item di akhir Β· insert() di posisi tertentu Β· extend() menyambung list lain.
  • Membuang: remove(nilai) berdasar isinya Β· pop(indeks) berdasar posisinya Β· clear() mengosongkan.
  • pop() mengembalikan item yang dibuang β€” remove() tidak.
  • list.sort() mengubah list aslinya. sorted(list) membuat list baru dan meninggalkan aslinya utuh.
  • Hampir semua metode ini mengembalikan None. data = data.append(x) adalah kesalahan klasik.

Menambah

tugas = ["belajar"]

tugas.append("olahraga")            # tambah satu di akhir
tugas.insert(0, "sarapan")          # sisipkan di posisi 0
tugas.extend(["tidur", "makan"])    # sambung beberapa sekaligus

print(tugas)
# ['sarapan', 'belajar', 'olahraga', 'tidur', 'makan']

append versus extend:

a = [1, 2]
a.append([3, 4])      # [1, 2, [3, 4]]   ← list masuk sebagai SATU item
b = [1, 2]
b.extend([3, 4])      # [1, 2, 3, 4]     ← isinya yang disambung

Membuang

buah = ["apel", "jeruk", "mangga", "jeruk"]

buah.remove("jeruk")     # buang yang PERTAMA cocok β†’ ['apel', 'mangga', 'jeruk']
terakhir = buah.pop()    # buang item terakhir DAN kembalikan isinya
pertama = buah.pop(0)    # buang berdasarkan posisi
buah.clear()             # kosongkan seluruhnya
PerintahDasarnyaMengembalikan nilai?
remove(x)IsinyaTidak
pop(i)PosisinyaYa β€” item yang dibuang
pop()Item terakhirYa
clear()SemuanyaTidak

remove() pada isi yang tidak ada akan menghentikan program:

buah.remove("durian")
# ValueError: list.remove(x): x not in list

# Cek dulu:
if "durian" in buah:
    buah.remove("durian")

Mengurutkan

nilai = [80, 95, 67, 88]

nilai.sort()                  # UBAH list aslinya β†’ [67, 80, 88, 95]
nilai.sort(reverse=True)      # dari besar ke kecil β†’ [95, 88, 80, 67]
nilai.reverse()               # balik urutan apa adanya

Kalau kamu tidak ingin list aslinya berubah, pakai sorted():

asli = [3, 1, 2]
baru = sorted(asli)

print(asli)     # [3, 1, 2]   ← utuh
print(baru)     # [1, 2, 3]

Kesalahan paling sering: menampung hasil metode list

tugas = ["a", "b"]
tugas = tugas.append("c")     # ← SALAH

print(tugas)                  # None

append() mengubah list di tempat dan mengembalikan None. Dengan menugaskannya kembali, kamu menimpa listmu dengan None dan kehilangan semua datanya. Yang benar:

tugas.append("c")             # cukup begini, tanpa "tugas ="

Aturan umumnya: append, insert, extend, remove, sort, reverse, dan clear semuanya mengembalikan None. Yang menghasilkan nilai baru hanya pop(), sorted(), dan copy().

Jangan membuang item sambil menyusuri

angka = [1, 2, 3, 4, 5, 6]

for n in angka:               # ← BERMASALAH
    if n % 2 == 0:
        angka.remove(n)

print(angka)                  # [1, 3, 5] β€” kebetulan benar, sering tidak

Menghapus item menggeser posisi item lainnya, sementara perulangan tetap melanjutkan hitungannya β€” akibatnya ada item yang terlewat. Buat list baru saja:

ganjil = []
for n in angka:
    if n % 2 != 0:
        ganjil.append(n)

# Atau satu baris β€” bentuk ringkas yang sangat khas Python:
ganjil = [n for n in angka if n % 2 != 0]

Bentuk satu baris itu namanya list comprehension. Dibaca: β€œambil n untuk setiap n di angka, kalau n ganjil”. Belum wajib kamu kuasai sekarang β€” tapi kamu akan sering melihatnya, jadi kenali bentuknya.

Ringkasan

InginTulis
Tambah satu itemdata.append(x)
Tambah beberapa itemdata.extend([x, y])
Sisipkan di posisidata.insert(0, x)
Buang berdasar isidata.remove(x)
Buang berdasar posisidata.pop(0)
Urutkan di tempatdata.sort()
Urutkan tanpa mengubah aslisorted(data)
Salindata.copy()

Latihan: buat aplikasi daftar tugas di terminal. Menu: tambah tugas, hapus tugas berdasar nomor, tampilkan daftar bernomor, dan keluar. Pakai while True + break dari Fase 3.

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.