【发布时间】:2018-09-27 23:00:22
【问题描述】:
这个问题可能比我说的要简单。听说过 3 列共有 8 个值的 2 值真值表吗? TTT, TTF... 和 2 列有 4 个值的 2 值真值表? 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)
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 行作为 list 或 lists 或 pandas DataFrame 或 numpy array 返回,我可以迭代
【问题讨论】:
标签: python python-3.x combinations itertools