小编典典

如何获取列表元素的所有可能组合?

all

我有一个包含 15 个数字的列表,我需要编写一些代码来生成这些数字的所有 32,768 个组合。

我找到了一些代码(通过谷歌搜索),显然可以满足我的要求,但我发现代码相当不透明并且对使用它持谨慎态度。另外,我觉得必须有一个更优雅的解决方案。

我唯一想到的就是循环遍历十进制整数 1-32768 并将它们转换为二进制,然后使用二进制表示作为过滤器来挑选出适当的数字。

有人知道更好的方法吗?使用map(),也许?


阅读 162

收藏
2022-03-06

共1个答案

小编典典

看看itertools.combinations

itertools.combinations(iterable, r)

从输入可迭代中返回 r 个长度的元素子序列。

组合按字典排序顺序发出。因此,如果输入的可迭代对象已排序,则组合元组将按排序顺序生成。

从 2.6 开始,包括电池!

2022-03-06