在Python中,zip()被用来压缩和解压数据。当使用zip()函数时,它会将多个可迭代对象中的元素一一对应,返回一个包含元组的迭代器。这个迭代器中的每个元组包含了这些可迭代对象中相同位置的元素。而当使用zip(*)函数时,它会将元组的元素解压出来解压成为独立的列表或元祖。
例如,假设我们有两个列表,一个包含名称,一个包含分数:
names = ['Tom', 'Jerry', 'Mickey']
scores = [80, 85, 90]
我们可以将它们压缩成一个元组的列表:
zipped = zip(names, scores)
# [('Tom', 80), ('Jerry', 85), ('Mickey', 90)]
要解压数据,只需使用zip(*),它将元组解压成独立的列表或元祖:
unzipped = zip(*zipped)
# [('Tom', 'Jerry', 'Mickey'), (80, 85, 90)]
所以,我们在使用zip(*)函数时,需要明白它的工作原理,以充分利用它的功能。