始める無料で始める

*とzipを使って「unzip」する

zip() の使い方と、zip オブジェクトから値を出力する方法を学びましたね。

次は zip() をもう少し掘り下げてみましょう。zip() の逆操作を行う unzip 関数は存在しません。しかし、zip の力を少し借りて、zip() を使って*でまとめたデータを元に戻すことができます!*は、リストやタプルなどの イテラブル を関数呼び出しの 位置引数 に展開します。

この演習では、 *の呼び出しに zip()を使って、zip() が生成したタプルを展開します。

文字列のタプル mutantspowers はあらかじめ読み込まれています。

この演習はコースの一部です

Python Toolbox

コースを見る

演習の手順

  • zipzip() をこの順番で mutants に渡し、powers オブジェクトを作成します。結果を z1 に代入してください。
  • z1 の呼び出しで * 演算子を使い、print() のタプルを位置引数として展開して出力します。
  • 前の print() の呼び出しで z1 の要素が消費されるため、先ほどと同じ zip オブジェクトを再作成し、再び z1 に代入します。
  • z1 の呼び出しで * 演算子を使って zip() のタプルを位置引数に展開し、「Unzip」します。結果をこの順番で 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)
コードを編集して実行