Modül dersleri (2/4)
Tuple'lar ve ambalajı açma
Demet sıralı ve değişmez bir dizidir: Bir kez oluşturulduktan sonra artık öğelerini değiştirmeyin. Parantezle yazılmıştır (her ne kadar aslında onu tanımlayan şey virgüldür).
Bir demet oluşturma
vuota = ()
una = (42,) # ATTENZIONE: senza virgola, (42) è solo 42 fra parentesi
coords = (10, 20)
mista = ("Ada", 36, True)Dizine göre erişim ve dilimleme, tam olarak listelerdeki gibi çalışır: coords[0],
coords[-1], mista[:2].
Liste yerine tuple ne zaman kullanılır?
- Değer, değişmemesi gereken sabit bir koleksiyonu temsil ettiğinde
(koordinatlar, tarih
(year, month, day), sürüm(1, 2, 3)). - Değeri sözlük anahtarı olarak veya bir öğe olarak kullanmanız gerektiğinde
a
set: yalnızca değişmez (hash edilebilir) nesneler kullanılabilir. - Kodun okuyucusuna that değerinin sinyalini vermek istediğinizde "dondurulmuş".
Paketi açma: Python'u yazma şeklinizi değiştiren özellik
nome, anni = ("Ada", 36)
nome # 'Ada'
anni # 36Ayrıca parantez olmadan da çalışır (bu, virgül ile tanımlanır) demet):
x, y = 10, 20Ve geçici bir değişken olmadan değiştirmeye izin verir, saf bir Python deyim:
a, b = 1, 2
a, b = b, a
a, b # (2, 1)* (geri kalan) ile paketi açma
"İlkini ve geri kalanını" veya "ilkini, sonuncusunu" yakalamak istediğinizde, orta":
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]Buna yıldızlı atama denir: yıldız, bir listede kalıyor.
Tek elemanlı demet tuzağı
(42) bir demet değil, parantez içindeki 42 sayısıdır. yapmak için
tek öğeli tanımlama grubu için virgül gerekir: (42,). O olmadan herhangi bir işlem
kafa karıştırıcı bir şekilde başarısız olur.
x = (42)
type(x) # <class 'int'>
x = (42,)
type(x) # <class 'tuple'>Tek elemanlı tuple'lar
Yalnızca bir öğe içeren bir demet oluşturmak için parantez tek başına yeterli değildir: sonuna bir virgül eklemelisiniz, örneğin t = (42,). Virgül olmadan, Python parantezleri basit matematiksel gruplandırma olarak ele alır ve 42 düz bir tamsayı oluşturur.
Deneyin
'a = 1' ve 'b = 2' verildiğinde, bunların değerlerini tek bir satırda değiştirin (demet açma) ve demet (a, b)'yi değerlendirin.
İpucu göster
a, b = b, a
3 denemeden sonra çözüm mevcut
Alıştırmayı gözden geçirin
"Voti = [7, 5, 8, 6, 9]" listesinden, birinci sınıfı "primo"ya, sonuncuyu "ultimo"ya ve geri kalanları "centro"ya çıkarmak için paket açmayı kullanın. '(primo, centro, ultimo)' değerini değerlendirin.
İpucu göster
primo, *centro, ultimo = oy → primo=7, centro=[5,8,6], ultimo=9.
3 denemeden sonra çözüm mevcut
Ek zorluk
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`.
İpucu göster
Üç koordinatı tek bir ifadede çıkarmak için x, y, z = point'i kullanın.
3 denemeden sonra çözüm mevcut