imp*_*rme 1 python combinations python-itertools python-3.x
问题可能比我听起来更简单.听说2个值真值表有3列,共有8个值吗?TTT, TTF...2个值真值表,2列有4个值?TT, TF, FF, FT
在我的问题:
共有5列.
A, B, C, D, E
列A只能1取值:a
列B可以2取值: x和y
列C可以3取值1,2和3(值可以是字符串或整数,数据类型无关紧要.
列D可以采取2的值t和f
最终
列E可以采取3的值alpha,并omega与beta
所以总共会有36种组合!(1 X 2 X 3 X 2 X 3)=36
到目前为止我做了什么?
我想出了这个令人厌恶的东西.. 我想要的输出是通过以下运行产生的:
col1 = ['a']
col2 = ['x', 'y']
col3 = ['1', '2', '3']
col4 = ['t', 'f']
col5 = ['alpha', 'omega', 'beta']
for i in col1:
for j in col2:
for k in col3:
for l in col4:
for m in col5:
print(i, j, k, l, m)
Run Code Online (Sandbox Code Playgroud)
36排......
a x 1 t alpha
a x 1 t omega
a x 1 t beta
a x 1 f alpha
a x 1 f omega
a x 1 f beta
a x 2 t alpha
a x 2 t omega
a x 2 t beta
a x 2 f alpha
a x 2 f omega
a x 2 f beta
a x 3 t alpha
a x 3 t omega
a x 3 t beta
a x 3 f alpha
a x 3 f omega
a x 3 f beta
a y 1 t alpha
a y 1 t omega
a y 1 t beta
a y 1 f alpha
a y 1 f omega
a y 1 f beta
a y 2 t alpha
a y 2 t omega
a y 2 t beta
a y 2 f alpha
a y 2 f omega
a y 2 f beta
a y 3 t alpha
a y 3 t omega
a y 3 t beta
a y 3 f alpha
a y 3 f omega
a y 3 f beta
Run Code Online (Sandbox Code Playgroud)
我不确定是否有更简单,更简洁的方法来做到这一点..我想知道是否有..
我可以接受的36行返回作为list的lists或pandas DataFrame或者numpy array,我可以遍历
您可以使用itertools中的产品为您列出元组:
输入:
import itertools
lst = [['a'],['x', 'y'],['1', '2', '3'],['t', 'f'],['alpha', 'omega', 'beta']]
list(itertools.product(*lst))
Run Code Online (Sandbox Code Playgroud)
输出:
[('a', 'x', '1', 't', 'alpha'),
('a', 'x', '1', 't', 'omega'),
('a', 'x', '1', 't', 'beta'),
('a', 'x', '1', 'f', 'alpha'),
('a', 'x', '1', 'f', 'omega'),
('a', 'x', '1', 'f', 'beta'),
('a', 'x', '2', 't', 'alpha'),
('a', 'x', '2', 't', 'omega'),
('a', 'x', '2', 't', 'beta'),
('a', 'x', '2', 'f', 'alpha'),
('a', 'x', '2', 'f', 'omega'),
('a', 'x', '2', 'f', 'beta'),
('a', 'x', '3', 't', 'alpha'),
('a', 'x', '3', 't', 'omega'),
('a', 'x', '3', 't', 'beta'),
('a', 'x', '3', 'f', 'alpha'),
('a', 'x', '3', 'f', 'omega'),
('a', 'x', '3', 'f', 'beta'),
('a', 'y', '1', 't', 'alpha'),
('a', 'y', '1', 't', 'omega'),
('a', 'y', '1', 't', 'beta'),
('a', 'y', '1', 'f', 'alpha'),
('a', 'y', '1', 'f', 'omega'),
('a', 'y', '1', 'f', 'beta'),
('a', 'y', '2', 't', 'alpha'),
('a', 'y', '2', 't', 'omega'),
('a', 'y', '2', 't', 'beta'),
('a', 'y', '2', 'f', 'alpha'),
('a', 'y', '2', 'f', 'omega'),
('a', 'y', '2', 'f', 'beta'),
('a', 'y', '3', 't', 'alpha'),
('a', 'y', '3', 't', 'omega'),
('a', 'y', '3', 't', 'beta'),
('a', 'y', '3', 'f', 'alpha'),
('a', 'y', '3', 'f', 'omega'),
('a', 'y', '3', 'f', 'beta')]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |