Python:生成一个包含5列的多值真值表,其中每列可以取一组特定的值

2024-06-28 19:14:14 发布

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

这个问题可能比我说的要简单。听说过3列2值真值表总共有8个值吗?TTT, TTF...和2值真值表,2列有4个值?TT, TF, FF, FT

我的问题是:

共有5列。你知道吗

A, B, C, D, E

A只能取1值:a

B可以采用2值:xy

C可以采用3123(值可以是字符串或整数,数据类型无关紧要)。你知道吗

D可以取2tf 最后呢

E可以取3alphaomegabeta

所以总共会有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)

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

我不确定是否有更简单,更不冗长的方法来做这件事。。我想知道是否有。。你知道吗

我可以将36行作为listlistspandas DataFramenumpy array返回


Tags: inalphaforttfbetacol2col3col1
1条回答
网友
1楼 · 发布于 2024-06-28 19:14:14

您可以使用itertools中的产品为您提供一个元组列表:

输入:

import itertools
lst = [['a'],['x', 'y'],['1', '2', '3'],['t', 'f'],['alpha', 'omega', 'beta']]
list(itertools.product(*lst))

输出:

[('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')]

相关问题 更多 >