如何编写一个类似list(zip(…))的函数?

2024-03-28 09:56:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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])]

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


Tags: 函数内容returndefargsziplistprint
1条回答
网友
1楼 · 发布于 2024-03-28 09:56:08

args是包含传递的参数的元组。您应该使用'splat'运算符解包,以便zip处理元组(参数)中的项,而不是args本身:

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

相关问题 更多 >