面试题答案
一键面试my_list = [(1, 'a', 2.5), (3, 'b', 4.7)]
new_list1, new_list2, new_list3 = list(zip(*my_list))
print(list(new_list1))
print(list(new_list2))
print(list(new_list3))
元组解包的作用和原理
- 作用:在这个过程中,元组解包使得代码可以简洁地将
zip(*my_list)
返回的可迭代对象(其中每个元素是一个元组)中的值分别提取出来,赋值给不同的变量(new_list1
、new_list2
、new_list3
)。如果不使用元组解包,就需要通过循环和索引操作来逐个提取这些值,代码会变得冗长和复杂。 - 原理:
zip(*my_list)
会将my_list
中每个元组的对应位置的元素打包成新的元组。*
操作符在这里用于解包my_list
,使得zip
函数将my_list
中的各个元组作为独立的参数处理。而元组解包是指将一个可迭代对象(这里是zip
返回的可迭代对象)中的元素按照位置依次赋值给多个变量。在Python中,只要等号左边变量的数量与右边可迭代对象元素的数量一致,就可以进行元组解包。