Koleksi Data · Pelajaran 4 dari 11

List lanjutan: slicing dan list comprehension

9 menit baca · BelajarCode

Slicing dengan langkah

Bentuk lengkap slicing adalah daftar[awal:akhir:langkah].

Python
1angka = [10, 20, 30, 40, 50, 60, 70, 80]2print(angka[1:6:2])3print(angka[::3])4print(angka[::-1])
Keluaran
[20, 40, 60]
[10, 40, 70]
[80, 70, 60, 50, 40, 30, 20, 10]

[::-1] adalah cara cepat membalik list.

Menyalin atau menunjuk?

Penugasan b = a tidak menyalin list. Kedua nama menunjuk list yang sama.

Python
1a = [1, 2, 3]2b = a3c = a.copy()4b.append(4)5print(a)6print(c)
Keluaran
[1, 2, 3, 4]
[1, 2, 3]

Mengubah b ikut mengubah a, sedangkan c adalah salinan terpisah.

List comprehension

List comprehension membuat list baru dari list lain dalam satu baris.

Python
1nilai = [72, 85, 64, 91, 78, 55]2kuadrat = [n * n for n in range(1, 6)]3tuntas = [n for n in nilai if n >= 75]4predikat = ["Tuntas" if n >= 75 else "Remedial" for n in nilai]5print(kuadrat)6print(tuntas)7print(predikat)
Keluaran
[1, 4, 9, 16, 25]
[85, 91, 78]
['Remedial', 'Tuntas', 'Remedial', 'Tuntas', 'Tuntas', 'Remedial']

enumerate dan zip

Python
1nama = ["Andi", "Bela", "Citra"]2nilai = [88, 92, 79]3for i, n in enumerate(nama, start=1):4    print(i, n)5for n, v in zip(nama, nilai):6    print(f"{n}: {v}")
Keluaran
1 Andi
2 Bela
3 Citra
Andi: 88
Bela: 92
Citra: 79
  • enumerate memberi nomor urut sekaligus isinya.
  • zip memasangkan isi beberapa list berdasarkan posisinya.

List di dalam list

List bisa berisi list lain, cocok untuk data berbentuk tabel atau matriks.

Python
1matriks = [2    [1, 2, 3],3    [4, 5, 6],4]5print(matriks[1][2])6transpos = [[baris[k] for baris in matriks] for k in range(3)]7print(transpos)
Keluaran
6
[[1, 4], [2, 5], [3, 6]]

Mengurutkan dengan kunci

Python
1kata = ["semangka", "apel", "jeruk", "kiwi"]2print(sorted(kata))3print(sorted(kata, key=len))4print(sorted(kata, key=len, reverse=True))
Keluaran
['apel', 'jeruk', 'kiwi', 'semangka']
['apel', 'kiwi', 'jeruk', 'semangka']
['semangka', 'jeruk', 'apel', 'kiwi']

Parameter key menentukan apa yang dibandingkan. Dengan key=len, kata diurutkan berdasarkan panjangnya.

Cek pemahaman

Apa hasil [x * 2 for x in range(5) if x % 2 == 1]?

Latihan

Nama berinisial

Dari daftar ["andi pratama", "bela", "citra dewi lestari"], buat list baru berisi nama dengan huruf awal kapital, lalu list kedua berisi inisialnya, keduanya dengan list comprehension.

Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler Python online.

Latih konsep ini

Tandai pelajaran ini selesai

Masuk ke aplikasi untuk mencatat kemajuan, lalu lanjutkan ke pelajaran berikutnya dari perangkat mana pun.

Buka di aplikasi