1. 学ぶ
  2. /
  3. コース
  4. /
  5. Python ツールボックス

Connected

演習

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

zip() の使い方と、zip オブジェクトから値を表示する方法は理解できましたね。素晴らしいです!

ここでは zip() をもう少し触ってみましょう。zip() の逆を行う unzip という関数はありませんが、* を使って zip() を呼び出すことで、まとめられた要素を元に戻すことができます。* は、リストやタプルなどの iterable を関数呼び出しの 位置引数 に展開(アンパック)します。

この演習では、zip() が生成したタプルを、zip() の呼び出しで * を使ってアンパックします。

文字列のタプル mutants と powers があらかじめ読み込まれています。

指示

100 XP
  • mutants と powers の順に zip() を呼び出して、zip オブジェクトを作成し、結果を z1 に代入します。
  • print() で * 演算子を使って位置引数にアンパックし、z1 内のタプルを表示します。
  • 直前の print() 呼び出しで z1 の要素は消費されてしまうため、先ほど定義した zip オブジェクトを作り直し、再び z1 に代入します。
  • zip() の呼び出しで * 演算子を使って、z1 内のタプルを位置引数にアンパックして「逆 zip(unzip)」します。結果をこの順で result1 と result2 に代入します。
  • 最後の print() 文は、result1 と mutants、result2 と powers を比較した結果を表示します。アンパックした result1 と result2 がそれぞれ mutants と powers と同等かどうか確認するには、"Submit Answer"("提出する")をクリックしてください。