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