開始使用免費開始

使用 * 與 zip 來「反壓縮」

你已經知道如何使用 zip(),也能從 zip 物件列印出值。很好!

我們再來多玩一下 zip()zip() 沒有對應的「unzip」函式可以做相反操作。不過,我們可以搭配 *,再呼叫一次 zip(),把先前「zip 起來」的內容反轉回來!* 會在函式呼叫中,將像是 list 或 tuple 這類的「可疊代物件(iterable)」拆封成「位置引數(positional arguments)」。

在這題中,你會在對 zip() 的呼叫中使用 *,把 zip() 產生的 tuple 拆封。

兩個由字串組成的 tuple,mutantspowers,已經預先載入。

本練習屬於課程

Python 工具箱

檢視課程

練習說明

  • 使用 zip(),依序以 mutantspowers 建立一個 zip 物件,指派給 z1
  • 在一次 print() 呼叫中使用 * 運算子,將 z1 的各個 tuple 拆封為位置引數,並列印它們。
  • 由於前一次 print() 呼叫已經耗盡 z1 的元素,請重新建立先前定義的 zip 物件,並再次指派給 z1
  • 在一次 zip() 呼叫中使用 * 運算子,將 z1 的各個 tuple 拆封為位置引數,以達到「反壓縮」。依序將結果指派給 result1result2
  • 最後的 print() 會列印將 result1mutantsresult2powers 比較的結果。按下「Submit Answer」查看拆封後的 result1result2 是否分別等同於 mutantspowers

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# 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)
編輯並執行程式碼