如何从一组表中获取笛卡尔积?
我知道如何获得列表的笛卡尔积。我使用:
import itertools
for element in itertools.product(*somelists):
print element
我无法将其转换为查找两个或多个表的笛卡尔积。
编辑:
例子:
Table 1;
X: 1, 2, 4
A: a, b, d
Table 2;
X : 2,3,5
B : x,y,v
输出:
X: 1,1,1,2,2,2,4,4,4
A: a,a,a,b,b,b,d,d,d
X: 2,3,5,2,3,5,2,3,5
B: x,y,v,x,y,v,x,y,v
你可以在这里找到一个更直观的例子: http://web.utk.edu/sas/OnlineTutor/1.2/en/60477/m71/m71_3.htm
请您参考如下方法:
给定:
X A
1 a
2 b
4 d
X B
2 x
3 y
5 v
需要做什么:
from pprint import pprint
t1 = [[1,'a'],[2,'b'],[4,'d']]
t2 = [[2,'x'],[3,'y'],[5,'v']]
t3 = []
for i1 in t1:
for i2 in t2:
i3 = i1 + i2
t3.append(i3)
pprint(t3)
结果:
[[1, 'a', 2, 'x'],
[1, 'a', 3, 'y'],
[1, 'a', 5, 'v'],
[2, 'b', 2, 'x'],
[2, 'b', 3, 'y'],
[2, 'b', 5, 'v'],
[4, 'd', 2, 'x'],
[4, 'd', 3, 'y'],
[4, 'd', 5, 'v']]
