使用 * 和 zip 进行"解压"(unzip)
您已经会使用 zip(),也会从 zip 对象中打印值。做得很好!
我们再来多玩一会儿 zip()。并没有专门用于执行 zip() 反向操作的解压函数。不过,我们可以借助 *,再配合 zip(),把已经 zip 在一起的内容"反向"回去!* 会在函数调用中把列表、元组等可迭代对象解包为位置参数。
在本练习中,您将把 * 用在对 zip() 的调用中,以解包 zip() 生成的元组。
两个字符串元组 mutants 和 powers 已预先加载。
本练习是课程的一部分
Python 工具箱
练习说明
- 使用按顺序的
mutants和powers调用zip()来创建一个zip对象。将结果赋值给z1。 - 在一次
print()调用中使用*运算符将其中的元组解包为位置参数,从而打印z1中的元组。 - 由于上一步的
print()调用会耗尽z1的元素,请重新创建之前定义的zip对象,并再次将结果赋给z1。 - 在对
zip()的调用中使用*运算符将z1中的元组解包为位置参数,实现"解压"。按此顺序将结果赋给result1和result2。 - 最后的
print()语句会打印将result1与mutants、result2与powers进行比较的结果。点击 "Submit Answer" 查看解包后的result1和result2是否分别等同于mutants和powers。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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)