如何解决如何在python中获取大小为k的列表的所有组合其中k>列表的长度?
这不会打印任何内容:
from itertools import combinations
comb = combinations([1,2],3)
for i in comb:
print(i)
我想要输出为:
(1,2,2) (1,1) (1,1,1) (2,2) (2,2)
解决方法
好像您只想要product
,而不是combinations
:
from itertools import product
for i in product([1,2],repeat=3):
print(i)
combinations
使您获得了独特的组合,而又不会在任何组合中重复使用元素,这意味着不可能从两个源元素中提取三个元素。它也是对顺序不敏感的,因此即使您只要求组合大小为(1,2)
(也只有(2,1)
才能使用),它也不会给您2
和permutations
。在您的情况下,您似乎想循环每个索引中的每个元素,从而允许重复(combinations
/ permutations
不会重复)和顺序敏感(combinations_with_replacement
不会重复)做),留下product
。
您无法从2个项目的列表中生成3个元素组合。试试这个:
#include <iostream>
#include <glfw3.h>
int main() {
std::cout << glfwInit() << std::endl;
return 0;
}
这基本上将可迭代项扩展到6项列表(comb = combinations([1,2]*3,3)
)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。