使用 zip
你學到的另一個有趣函式是 zip()。它可以接收任意數量的可疊代物件,並回傳一個 zip 物件,該物件是由 tuple 組成的疊代器。若想列印 zip 物件中的值,可以先把它轉成清單再列印。直接列印 zip 物件本身不會得到內容值,除非先把它解包。在這個練習中,你會自己動手體會這些差異。
我們已預先載入三個字串清單:mutants、aliases 和 powers。你會先用 list() 搭配 zip() 把這三個清單轉成由 tuple 組成的清單。接著,用 zip() 建立一個 zip 物件。最後,在 for 迴圈中解包這個 zip 物件,列印每個 tuple 的值。請觀察以下三種輸出之間的差異:先列印由 tuple 組成的清單、再列印 zip 物件本身、最後在 for 迴圈中列印逐一取出的 tuple 值。
本練習屬於課程
Python 工具箱
練習說明
- 使用
zip()搭配list(),從mutants、aliases、powers這三個清單(依此順序)建立一個由 tuple 組成的「清單」,並將結果指定給mutant_data。 - 使用
zip(),從mutants、aliases、powers這三個清單建立一個名為mutant_zip的「zip 物件」。 - 完成
for迴圈:解包你建立的zip物件並列印各個 tuple 的值。請依序使用value1、value2、value3來對應mutants、aliases、powers的值。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Create a list of tuples: mutant_data
mutant_data = ____
# Print the list of tuples
print(mutant_data)
# Create a zip object using the three lists: mutant_zip
mutant_zip = ____
# Print the zip object
print(mutant_zip)
# Unpack the zip object and print the tuple values
for ____ in ____:
print(value1, value2, value3)