Lompati ke konten utama
Modul 3 · Pelajaran 1 dari 49/36 dalam kursus~12 min
Pelajaran modul (1/4)

Daftar

Daftar adalah rangkaian elemen yang terurut dan dapat diubah. Itu adalah struktur data yang paling banyak digunakan dengan Python: Anda membuatnya dengan [] dan memodifikasinya dengan serangkaian metode yang patut dihafal.

Membuat daftar

Python
vuota = []
numeri = [10, 20, 30]
mista = [1, "due", 3.0, True, None]    # tipi diversi: legale ma raro

Akses berdasarkan indeks dan irisan

Indeks dimulai pada 0. Indeks negatif dihitung dari kanan:

Python
parole = ["a", "b", "c", "d"]
parole[0]    # 'a'
parole[-1]   # 'd'   (ultimo)
parole[1:3]  # ['b', 'c']   slice [start:stop]
parole[::-1] # ['d', 'c', 'b', 'a']   reverse

Sebuah irisan tidak pernah memunculkan IndexError: jika berada di luar jangkauan, ia mengembalikan sub-daftar kosong. Akses langsung seperti parole[10] malah menimbulkan pengecualian.

Memodifikasi daftar

Python
nums = [1, 2, 3]
nums.append(4)         # [1, 2, 3, 4]    aggiunge in fondo
nums.insert(0, 0)      # [0, 1, 2, 3, 4] inserisce in posizione
nums.extend([5, 6])    # [0, 1, 2, 3, 4, 5, 6]   concatena
nums.pop()             # 6   estrae ultimo
nums.pop(0)            # 0   estrae primo (più lento: O(n))
nums.remove(3)         # rimuove la PRIMA occorrenza di 3
nums[1] = 99           # sostituisce per indice

Penyortiran

Dua bentuk — penting untuk membedakannya:

Python
nums = [3, 1, 4, 1, 5, 9, 2, 6]
nums.sort()          # MUTA nums in place, ritorna None
ordinati = sorted(nums)  # ritorna NUOVA lista, lascia nums invariata
nums.sort(reverse=True)
sorted(nums, key=lambda n: -n)   # ordinamento per chiave

Panjang, keanggotaan, iterasi

Python
len(nums)              # quanti elementi
3 in nums              # True/False
for n in nums:
    print(n)

Menyalin daftar

a = b tidak menyalin — itu hanya membuat nama kedua untuk daftar yang sama. Untuk sebenarnya menyalin:

Python
copia = lista[:]            # slice completo
copia = list(lista)         # costruttore esplicito
copia = lista.copy()        # metodo

(Ini semua salinan dangkal — elemen yang disarangkan tetap dibagikan.)

Menyalin daftar: hati-hati terhadap referensi

Dengan Python, saat Anda menulis list_b = list_a, Anda tidak membuat salinan: Anda hanya membuat referensi kedua. Memodifikasi list_b akan mengubah list_a juga. Untuk membuat salinan independen yang sebenarnya, Anda harus menulis list_b = list_a.copy() atau menggunakan pemotongan penuh: list_b = list_a[:].

Cobalah

Latihan#python.m3.l1.e1
Upaya: 0Memuat…

Mengingat daftar `angka = [5, 2, 8, 1, 9, 3]`, buatlah `tiga_urutan_pertama` dengan tiga angka pertama yang diurutkan dalam urutan menaik. Jangan mengubah angka.

Memuat editor…
Tunjukkan petunjuk

nums[:3] adalah tiga yang pertama, lalu diurutkan(...).

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#python.m3.l1.e2
Upaya: 0Memuat…

Mulai dari `words = ['ciao']`, tambahkan 'mondo' di akhir, lalu masukkan '!' di awal. Evaluasi `kata`.

Memuat editor…
Tunjukkan petunjuk

tambahkan di bagian ekor, masukkan(0, ...) di bagian kepala.

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#python.m3.l1.e3
Upaya: 0Memuat…

Given the list `items = [10, 20, 30, 40]`, use slicing to create a new list `reversed_items` containing the same elements but in reverse order. Finally, evaluate `reversed_items`.

Memuat editor…
Tunjukkan petunjuk

Mengiris dengan langkah negatif adalah [::-1]. Tetapkan ke reversed_items.

Solusi tersedia setelah 3 upaya