如何在map(func,iter)中动态定义'func'和'iter'?

时间:2018-09-13 09:06:15

标签: python python-3.x lambda

假设我有此列表列表

M = [[2,4,2,6],[5,7,2,3],[3,43,1,6]]

运行

print(list(map(lambda i,j,k: (i,j,k), M[0],M[1],M[2])))

返回

[(2, 5, 3), (4, 7, 43), (2, 2, 1), (6, 3, 6)]

问题:有没有办法动态地做到这一点?也就是说,要写下一些东西(最好在一行中写),以便对n个列表中的任何一个进行此记录吗?我想要类似的东西

X = [[4,2,2], ..., [9,4,1]]
expression(X)

返回

[(4, ..., 9), (2, ..., 4), (2, ..., 1)]

1 个答案:

答案 0 :(得分:1)

您可以使用zip

例如:

M = [[2,4,2,6],[5,7,2,3],[3,43,1,6]]
print(list(zip(*M)))

输出:

[(2, 5, 3), (4, 7, 43), (2, 2, 1), (6, 3, 6)]