*参数的Itertools

时间:2019-03-28 04:14:36

标签: python

我想要一个函数来生成任意数量的数组的叉积。

# Code to generate cross product of 3 arrays
M = [1, 1]
N = [2, 3]
K = [4, 5]
for M, N, K in itertools.product(M, N, K)

如果我想使用*引入函数,什么是实现该功能的好方法?

我尝试了以下代码,但以错误结尾:"TypeError: 'builtin_function_or_method' object is not iterable"

# def cross_product(*inputs):
      return itertools.product(inputs)

cross_product(M, N, K)

1 个答案:

答案 0 :(得分:2)

实际上,您可以直接使用不带辅助功能的拆包:

import itertools

L = [[1, 1],
     [2, 3],
     [4, 5]]

for x in itertools.product(*L):
    print(x)