gpt4 book ai didi

Ruby 组合方法的 Python 等价物

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:47 25 4
gpt4 key购买 nike

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

非常感谢:)

最佳答案

The itertools module has a combinations为您执行此操作的方法。

itertools.combinations(a, len)

演示:

>>> a = [1, 2, 3, 4]
>>> import itertools
>>> itertools.combinations(a, 2)
<itertools.combinations object at 0x109c276d8>
>>> list(itertools.combinations(a, 2))
[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
>>> list(itertools.combinations(a, 3))
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
>>> list(itertools.combinations(a, 4))
[(1, 2, 3, 4)]

关于Ruby 组合方法的 Python 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38288735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com