python求笛卡尔积

  数学 离散数学 Python    浏览次数:1845        分享
0

比如A=['a', 'b'], B=[1, 2, 3],笛卡尔积是[('a', 1), ('b', 1), ('a', 2), ('b', 2), ('a', 3), ('b', 3)] 

怎么用python求两个集合的笛卡尔积?

 

myodd   2018-11-25 12:28



   3个回答 
7

itertools是方便做循环的package

import itertools
result = list(itertools.product(*[A, B]))

得到的结果为

[('a', 1), ('a', 2), ('a', 3), ('b', 1), ('b', 2), ('b', 3)]


SofaSofa数据科学社区DS面试题库 DS面经

Jiho   2018-11-27 12:15

4

如果只是计算两个集合,可以直接用循环


[(x,y) for x in A for y in B]


如果多个集合计算笛卡尔积,itertools比较简明

SofaSofa数据科学社区DS面试题库 DS面经

feirie   2018-11-30 20:44

2


numpy.transpose([numpy.tile(x, len(y)), numpy.repeat(y, len(x))])


SofaSofa数据科学社区DS面试题库 DS面经

dizhouw2   2018-11-27 04:16

这个出来的结果好像int被转成了str类型了 - Jiho   2018-11-27 12:14


  相关主题

python中求两个集合的交集?   1回答

python里如何判断一个集合是另一个集合的子集?   2回答

python中计算二项式系数?   2回答

为什么图的拉普拉斯矩阵的最小特征值一定是0?   2回答

轮流射击先中枪的概率题   2回答

图里的强连通成分是什么意思?   1回答

python里怎么把16进制的数换成10进制的?   1回答

python里怎么表示科学计数法?   1回答

python怎么生成数值一样的分块矩阵?   1回答

python里怎么求两个矩阵的克罗内克积?   1回答

怎么在python中求array(矩阵)的特征向量、特征值?   2回答

怎么利用python判断一个矩阵是否可逆?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!