* ve zip kullanarak 'unzip' yapmak
zip()'i nasıl kullanacağını ve bir zip nesnesinden değerleri nasıl yazdıracağını biliyorsun. Harika!
Hadi zip() ile biraz daha oynayalım. zip()'in yaptığının tersini yapan bir unzip fonksiyonu yok. Ancak *'ten biraz yardım alarak yine zip() kullanıp birlikte ziplenmiş olanları tersine çevirebiliriz! *, bir fonksiyon çağrısında, liste veya demet (tuple) gibi bir iterable’ı konumsal argümanlara açar.
Bu egzersizde, zip() tarafından üretilen demetleri, zip() çağrısında * kullanarak açacaksın.
İki metin demeti olan mutants ve powers önceden yüklendi.
Bu egzersiz
Python Araç Kutusu
kursunun bir parçasıdırEgzersiz talimatları
mutantsvepowersüzerinde, bu sırayla,zip()kullanarak birzipnesnesi oluştur. Sonucuz1'e ata.print()çağrısında*operatörünü kullanarak,z1içindeki demetleri konumsal argümanlara açıp yazdır.- Önceki
print()çağrısız1içindeki öğeleri tüketmiş olacağından, daha önce tanımladığınzipnesnesini yeniden oluştur ve sonucu tekrarz1'e ata. z1içindeki demetleri, birzip()çağrısında*operatörünü kullanarak konumsal argümanlara açıp 'unzip' yap. Sonuçları, bu sırayla,result1veresult2'ye ata.- Son
print()ifadeleri,result1ilemutants'ı veresult2ilepowers'ı karşılaştırmanın çıktısını yazdırır. Açılmışresult1veresult2'nin sırasıylamutantsvepowersile eşdeğer olup olmadığını görmek içinSubmit Answer'a tıkla.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Create a zip object from mutants and powers: z1
z1 = ____
# Print the tuples in z1 by unpacking with *
print(____)
# Re-create a zip object from mutants and powers: z1
z1 = ____
# 'Unzip' the tuples in z1 by unpacking with * and zip(): result1, result2
result1, result2 = ____
# Check if unpacked tuples are equivalent to original tuples
print(result1 == mutants)
print(result2 == powers)