python - 如何找到python中每个有效k的所有元素组合?
问题描述
假设我想找到元素的所有可能组合(不是 nCk 给出的可能组合的数量,而是组合本身。)此外,假设我对给定所有可能的 k 的所有可能组合感兴趣。例如
elems = [a,b,c,d] #k=1
com_2 = [(a,b),(a,c),(a,d),(b,c),(b,d),(c,d)] #k=2
com_3 = [(a,b,c),(a,b,d),(a,c,d),(b,c,d)] #k=3
com_4 = [(a,b,c,d)] #k=4
我想知道,是否有一个内置的python函数可以做到这一点?(可能是 set 类的一部分。)如果不是,您将如何编写函数来实现此效果?
elems = ['a','b','c','d']
sets = []
for idx1 in range(len(elems)):
for idx2 in range(idx1+1, len(elems)):
sets.append((elems[idx1],elems[idx2]))
sets
>>>
[('a', 'b'), ('a', 'c'), ('a', 'd'), ('b', 'c'), ('b', 'd'), ('c', 'd')]
这仅适用于 k=2,当 k 较大时,我需要动态添加另一个 for 循环。这让我认为递归可能是合适的,但我完全不知道如何前进。
这个问题似乎暗示了正确的方向,虽然我不是 C++ 程序员,所以我一点也不清楚。
编辑:偶然发现如何获得列表元素的所有可能组合?这回答了我的问题。随意关闭,模组
解决方案
推荐阅读
- docker - Jenkins 多代理在幕后构建切换目录,防止 AWS CodeDeploy 插件压缩构建文件
- azure - 在datafactory中处理excel表
- asp.net-mvc - Web Garden 的行为因应用程序池标识上的用户设置而异
- python - Scapy Python 3 错误:警告找不到路由(没有默认路由?)
- python - 如何将 jq 的值行转换为 JSON 输出?
- reactjs - 如何使用 Mobx6 制作 RootStore
- python-3.x - 1 值与先前元素的类型不同 python pandas
- image - 当我设置 LoggingMode = 'disk' 时,为什么 MATLAB videoinput 会写入 RAM?
- python - 尽管存在元素,但 selenium WebDriverWait for element to appear 已超时
- python - 如何修复错误“dict”对象没有属性“to_csv”