Python组合方法的等效方法

时间:2016-07-10 04:57:30

标签: python arrays ruby

是否有 惯用的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:我不是在寻找排列,而是寻找特定大小的组合。

非常感谢:)

1 个答案:

答案 0 :(得分:5)

The itertools module has a combinations方法,为您完成此操作。

libgtksourceview2.0-common

演示:

itertools.combinations(a, len)