Lompati ke konten utama
Modul 3 · Pelajaran 2 dari 410/36 dalam kursus~10 min
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

Python
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

Python
nome, anni = ("Ada", 36)
nome   # 'Ada'
anni   # 36

Ini juga berfungsi tanpa tanda kurung (komalah yang mendefinisikan tupel):

Python
x, y = 10, 20

Dan itu memungkinkan bertukar tanpa variabel sementara, sebuah Python murni ungkapan:

Python
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":

Python
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.

Python
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

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

Diberikan `a = 1` dan `b = 2`, tukar nilainya dalam satu baris (tuple unpacking) dan evaluasi tuple (a, b).

Memuat editor…
Tunjukkan petunjuk

a, b = b, a

Solusi tersedia setelah 3 upaya

Tinjau latihan

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

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)`.

Memuat editor…
Tunjukkan petunjuk

primo, *centro, ultimo = suara → primo=7, centro=[5,8,6], ultimo=9.

Solusi tersedia setelah 3 upaya

Tantangan tambahan

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

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`.

Memuat editor…
Tunjukkan petunjuk

Gunakan x, y, z = titik untuk mengekstrak tiga koordinat dalam satu pernyataan.

Solusi tersedia setelah 3 upaya