使用Allpairspy中的AllPairs函数时,它不会为3列对提供正确的结果。对于2列对,它可以正常工作

2024-04-28 06:23:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我想生成测试数据,这些数据包含参数数组中的值的组合,并且是最优的。我使用了Allpairspy包中的AllPairs功能。对于n=2,即成对的2列,它工作正常。但不适用于3列对

from Allpairspy import Allpairs
n = 2
param = [['A','B'],['1','2','3','4'],['One','Two','Three']]
for m in list(AllPairs(param,n=n)):
    print(m)

这将生成输出-对于2对-总共12个组合(4x3)是正确的

['A', '1', 'One']
['B', '2', 'One']
['B', '3', 'Two']
['A', '4', 'Two']
['A', '3', 'Three']
['B', '4', 'Three']
['B', '1', 'Three']
['A', '2', 'Three']
['A', '2', 'Two']
['A', '1', 'Two']
['A', '4', 'One']
['A', '3', 'One']

但是当我在n=3的情况下运行相同的程序时,它应该至少生成了4 x 2 x 3=24对。但它只产生了15个。所有对中都有错误吗

from Allpairspy import Allpairs

n = 3
param = [['A','B'],['1','2','3','4'],['One','Two','Three']]
for m in list(AllPairs(param,n=n)):
    print(m)

仅生成15对-

['A', '1', 'One']
['B', '2', 'One']
['B', '3', 'One']
['A', '4', 'One']
['A', '4', 'Two']
['B', '3', 'Two']
['B', '2', 'Two']
['B', '1', 'One']
['A', '1', 'Two']
['A', '1', 'Three']
['A', '4', 'Three']
['A', '2', 'One']
['B', '2', 'Three']
['A', '3', 'One']
['B', '3', 'Three']

Tags: 数据infromimportforparamonelist