Skip to main content
 首页 » 编程设计

python之在Python中获取一系列表格的笛卡尔积

2025年05月04日7Renyi-Fan

如何从一组表中获取笛卡尔积?

我知道如何获得列表的笛卡尔积。我使用:

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