繁体   English   中英

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

[英]How can I find the Cartesian Product of a list of vectors?

我遇到了一个问题,目前无法解决问题。 基本上,我的数据格式化如下:

  • 有一个带有一定数量元素(例如3个)的Vector,所以我们以(1, 2, 3)为例,在此示例中,维数为3。
  • 此向量在列表中重复n

因此,在此示例中[(1, 2, 3), (1, 2, 3)]如果n = 2则具有[(1, 2, 3), (1, 2, 3)] 我现在想要的是向量的新列表,其中列表中向量内的每个元素都与其他元素组合在一起。 在此示例中,我的预期输出将是:

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

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

您似乎需要itertools.product

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM