高效获取Python列表的所有k组合方法
我使用了 itertools.combinations(iterable,k)
这个方法,但对于大数据量的测试来说,这个方法比较耗时。有没有什么方法可以让它更快呢?
比如,我有一个数字列表: [1,2,3]
这个列表中所有可能的两个数字组合是: [(1,2),(1,3),(2,3)]
任何帮助都非常感谢。
1 个回答
9
itertools.combinations(i, k)
这个方法非常高效。我想你觉得它运行慢的原因,是因为你直接把生成器转换成了列表,像这样:list(itertools.combinations(i, k))
。不过,你可以在需要的时候,逐个使用这些值,像下面这样用一个循环:
for item in itertools.combinations(i, k):
#do stuff with each combination