美文网首页
python用itertools.product函数生成10位的

python用itertools.product函数生成10位的

作者: 丙吉 | 来源:发表于2023-06-11 16:44 被阅读0次

需求:有10个指标,每个指标有阴阳两种结果,生成它们的可能性。

解决:总共有组合数为2^10=1024种

python中所用的函数为itertools.product,它的作为为求多个可迭代对象的笛卡尔积。

import itertools
a = itertools.product([0, 1], repeat = 3)  # 从0,1列表中,取数,重复3次
print(list(a)) # a是一个迭代器
相当于第一位的可能性有2种,第二位,第三位亦如此,故结果是2^3=8,结果如下:

[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]

有10个指标,把repeat换为10即可。

image.png

两两组合

import itertools
a = itertools.product(['甲','乙','丙','丁'], ['A','B','C'], repeat = 1)
print(list(a))

组合共12个,结果如下:

[('甲', 'A'), ('甲', 'B'), ('甲', 'C'), ('乙', 'A'), ('乙', 'B'), ('乙', 'C'), ('丙', 'A'), ('丙', 'B'), ('丙', 'C'), ('丁', 'A'), ('丁', 'B'), ('丁', 'C')]

相关文章

网友评论

      本文标题:python用itertools.product函数生成10位的

      本文链接:https://www.haomeiwen.com/subject/tqzxydtx.html