我使用了itertools.combinations(iterable,k)
方法,这对于大型测试用例非常耗时。有没有什么方法可以让它更快。
例如,我有一个数字列表:[1,2,3]
列表中所有可能的'2'组合:[(1,2),(1,3),(2,3)]
感谢任何帮助。
答案 0 :(得分:7)
itertoools.combinations(i, k)
效率很高。我认为你发现它耗费时间的原因是因为你正在将生成器转换为一个列表:list(itertools.combinations(i, k))
。但是,您可以根据需要在for循环中逐个使用这些值,如下所示:
for item in itertools.combinations(i, k):
#do stuff with each combination