Python 如何找到向量列表的笛卡尔积?

Python 如何找到向量列表的笛卡尔积?,python,list,iterator,permutation,Python,List,Iterator,Permutation,我有一个问题,我现在无法集中注意力。基本上,我的数据格式如下: 有一个向量有一定数量的元素(比如说,三个,所以让我们以(1,2,3)为例。在这个例子中,维度是3 此向量在列表中重复n次 因此,在这个例子中,我有[(1,2,3),(1,2,3)]如果n=2。我现在想要的是一个新的向量列表,其中列表中向量内的每个元素都与其他元素中的每个其他元素相结合。在这个例子中,我的预期输出是: [(1,1)、(1,2)、(1,3)、(2,1)、(2,2)、(2,3)、(3,1)、(3,2)、(3,3)] 现

我有一个问题,我现在无法集中注意力。基本上,我的数据格式如下:

  • 有一个向量有一定数量的元素(比如说,三个,所以让我们以
    (1,2,3)
    为例。在这个例子中,维度是3
  • 此向量在列表中重复
    n
因此,在这个例子中,我有
[(1,2,3),(1,2,3)]
如果
n=2
。我现在想要的是一个新的向量列表,其中列表中向量内的每个元素都与其他元素中的每个其他元素相结合。在这个例子中,我的预期输出是:

[(1,1)、(1,2)、(1,3)、(2,1)、(2,2)、(2,3)、(3,1)、(3,2)、(3,3)]

现在,对于这样一个小列表,可以使用简单的循环来完成,但我的问题是:如何编写一个函数,为
x
维度的输入向量和列表中的
y
数量提供所有这样的组合?
您似乎需要


您的方法不会返回预期的输出;例如,它不会返回
(3,3)
,因为尽管OP有条款,但他并不是在寻找排列。@zipa如何改进标题以使问题更清楚?@aliasguru这类操作的名称是
a = [(1,2,3), (1,2,3)]

list(product(*a))
#[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]