【发布时间】:2017-08-26 19:27:50
【问题描述】:
在 python 中,我通过使用多个 for 循环测试了具有固定长度、有重复和不重复的组合。例如,如果我想测试长度为 2 且允许重复的最多 5 个数字的每个组合,我会这样做:
list1=[1,2,3,4,5]
for a in list1:
for b in list1:
print(str(a)+','+str(b) )
对于固定长度,这似乎很简单,但在测试所有不同长度时效果不佳。当长度变化时,使用这种策略我必须制作 5 组不同的 1、2、3、4 和 5 循环。这已经非常冗长和丑陋了,但是随着列表大小变得越来越大,它会呈指数级恶化。我正在寻找一种更雄辩、更简单的方法来在 python 中测试所有这些组合。
【问题讨论】:
-
或(有重复)
itertools.product. -
或
itertools.permutations如果您不希望重复但希望所有结果排序。 -
“指数”你的意思是二次:)
标签: python python-3.x combinations