我有一个包含 15 个数字的列表,我需要编写一些代码来生成这些数字的所有 32,768 个组合。
我找到了一些代码(通过谷歌搜索),显然可以满足我的要求,但我发现代码相当不透明并且对使用它持谨慎态度。另外,我觉得必须有一个更优雅的解决方案。
我唯一想到的就是循环遍历十进制整数 1-32768 并将它们转换为二进制,然后使用二进制表示作为过滤器来挑选出适当的数字。
有人知道更好的方法吗?使用map(),也许?
map()
看看itertools.combinations:
itertools.combinations(iterable, r) 从输入可迭代中返回 r 个长度的元素子序列。 组合按字典排序顺序发出。因此,如果输入的可迭代对象已排序,则组合元组将按排序顺序生成。
itertools.combinations(iterable, r)
从输入可迭代中返回 r 个长度的元素子序列。
组合按字典排序顺序发出。因此,如果输入的可迭代对象已排序,则组合元组将按排序顺序生成。
从 2.6 开始,包括电池!