是否有 惯用的python方式 列出列表中特定大小的所有组合?
以下代码在ruby(here)中工作,我想知道是否有python等效:
a = [1, 2, 3, 4]
a.combination(1).to_a #=> [[1],[2],[3],[4]]
a.combination(2).to_a #=> [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
a.combination(3).to_a #=> [[1,2,3],[1,2,4],[1,3,4],[2,3,4]]
PS:我不是在寻找排列,而是寻找特定大小的组合。
非常感谢:)
答案 0 :(得分:5)
The itertools
module has a combinations
方法,为您完成此操作。
libgtksourceview2.0-common
演示:
itertools.combinations(a, len)