Pelajaran modul (2/4)
Tupel dan membongkar
Tuple adalah urutan yang terurut dan tidak dapat diubah: setelah dibuat, Anda bisa tidak lagi mengubah unsur-unsurnya. Itu ditulis dengan tanda kurung (walaupun yang sebenarnya mendefinisikannya adalah koma).
Membuat tupel
vuota = ()
una = (42,) # ATTENZIONE: senza virgola, (42) è solo 42 fra parentesi
coords = (10, 20)
mista = ("Ada", 36, True)Akses berdasarkan indeks dan pemotongan berfungsi persis seperti untuk daftar: coords[0],
coords[-1], mista[:2].
Kapan menggunakan Tuple alih-alih daftar
- Jika nilai mewakili koleksi tetap yang tidak boleh diubah
(koordinat, tanggal sebagai
(year, month, day), versi(1, 2, 3)). - Saat Anda perlu menggunakan nilai sebagai kunci kamus atau sebagai elemen dari
a
set: hanya objek yang tidak dapat diubah (hashable) yang dapat digunakan. - Bila Anda ingin memberi sinyal kepada pembaca kode bahwa nilai itu adalah "beku".
Unpacking: fitur yang mengubah cara Anda menulis Python
nome, anni = ("Ada", 36)
nome # 'Ada'
anni # 36Ini juga berfungsi tanpa tanda kurung (komalah yang mendefinisikan tupel):
x, y = 10, 20Dan itu memungkinkan bertukar tanpa variabel sementara, sebuah Python murni ungkapan:
a, b = 1, 2
a, b = b, a
a, b # (2, 1)Membongkar dengan * (istirahat)
Bila Anda ingin menangkap "yang pertama dan sisanya" atau "yang pertama, yang terakhir, tengah":
primo, *resto = [1, 2, 3, 4, 5]
primo # 1
resto # [2, 3, 4, 5]
primo, *centro, ultimo = [1, 2, 3, 4, 5]
centro # [2, 3, 4]Ini disebut tugas berbintang: bintang mengumpulkan semua itu tetap berada dalam daftar.
Perangkap tupel elemen tunggal
(42) bukan tupel, melainkan angka 42 di dalam tanda kurung. Untuk membuat a
tupel elemen tunggal Anda memerlukan koma: (42,). Tanpa itu, operasi apa pun
gagal dengan cara yang membingungkan.
x = (42)
type(x) # <class 'int'>
x = (42,)
type(x) # <class 'tuple'>Tupel elemen tunggal
Untuk membuat tupel yang hanya berisi satu elemen, tanda kurung saja tidak cukup: Anda harus menyisipkan koma di akhir, misalnya t = (42,). Tanpa koma, Python memperlakukan tanda kurung sebagai pengelompokan matematis sederhana, menghasilkan bilangan bulat biasa 42.
Cobalah
Diberikan `a = 1` dan `b = 2`, tukar nilainya dalam satu baris (tuple unpacking) dan evaluasi tuple (a, b).
Tunjukkan petunjuk
a, b = b, a
Solusi tersedia setelah 3 upaya
Tinjau latihan
Dari daftar `voti = [7, 5, 8, 6, 9]`, gunakan unpacking untuk mengekstrak nilai pertama menjadi `primo`, nilai terakhir menjadi `ultimo` dan sisanya menjadi `centro`. Evaluasi `(primo, centro, ultimo)`.
Tunjukkan petunjuk
primo, *centro, ultimo = suara → primo=7, centro=[5,8,6], ultimo=9.
Solusi tersedia setelah 3 upaya
Tantangan tambahan
Given the tuple `point = (4, 5, 6)`, use unpacking to assign the three values to the variables `x`, `y`, `z` respectively. Then, calculate the sum of `x`, `y`, and `z` and store it in `coord_sum`. Finally, evaluate `coord_sum`.
Tunjukkan petunjuk
Gunakan x, y, z = titik untuk mengekstrak tiga koordinat dalam satu pernyataan.
Solusi tersedia setelah 3 upaya