我想将列表的所有元素组合成具有指定长度的子列表(而不是元组)。
itertools.combinations_with_replacement
生成器几乎完成了我想要实现的目标:
>>> list(itertools.combinations_with_replacement([1,2],2))
[(1, 1), (1, 2), (2, 2)]
我只有两件事我不喜欢:它会创建元组而不是子列表(我可以用地图更改),它会错过上例中的元素(2,1)
。
Python 2中是否有任何内置模块能够满足我的需求?如果没有,是否有任何简单的方法至少得到combinations_with_replacements
(或任何其他模块函数)来生成提供的示例中缺少的元素?
答案 0 :(得分:1)
也许:
>>> from itertools import product
>>> list(product([1, 2], repeat=2))
[(1, 1), (1, 2), (2, 1), (2, 2)]