Skip to main content
 首页 » 编程设计

python之如何编写一个像 list(zip(...)) 一样工作的函数

2025年05月04日9zengkefu

a = [[1, 1], [0, 0], [1, 1]] 
b = [[2, 2], [3, 3], [4, 4]] 
 
def zippy(*args): 
  return list(zip(args)) 
 
print(zippy(a, b)) 
>>> [([[1, 1], [0, 0], [1, 1]],), ([[2, 2], [3, 3], [4, 4]],)] 
 
print(list(zip(a, b))) 
>>> [([1, 1], [2, 2]), ([0, 0], [3, 3]), ([1, 1], [4, 4])] 

有人请向我解释为什么我没有得到完全相同的输出。 print(list(zip(a, b))) 不应返回与 print(zippy(a, b)) 相同的结果,因为该函数返回的是正在打印,即 list(zip(a, b))?

请您参考如下方法:

args 是一个包含传递参数的元组。您应该使用“splat”运算符解压,以便zip 对元组中的项目(参数)起作用,而不是args 本身:

def zippy(*args): 
    return list(zip(*args)) 
#                   ^