我在从列表创建元素组合时遇到麻烦。在
我想做的是在Python中创建一个递归函数,它返回元素的组合,例如lista = [1,2,3,4,5,6,7,8]
,结果是组合[1,2,3,4],[1,3,4,5],[1,4,5,6],[1,2,4,5]等等。对于8个元素,它应该返回70个组合(如果我计算正确的话)。虽然最好的选择是不要重复组合。在
我试图对它进行编码,但得到的只是[1,2,3,4],[1,3,4,5] etc
,而不是组合{
我知道有一个特殊的函数,但我想递归地做。有什么建议吗?在
nimed = ["A","B","C","D","E","F","G","H"]
def kombinatsioonid(listike,popitav):
if len(listike) < 4:
return
tyhi = []
for c in range(len(listike)):
tyhi.append(listike[c])
listike.pop(popitav)
print(tyhi)
kombinatsioonid(listike,popitav)
kombinatsioonid(nimed,1)
可以这样做:
对于}。如果
a
中的每个元素x
,从其右边的元素生成所有的k-1
组合,并在每个组合前面加上{k==0
,只需返回一个空组合,从而退出递归:取消对“print”行的注释以查看发生了什么。在
顺便说一句,最好使用英语变量和函数名,只是为了实现互操作性(您的问题就是一个例子)。在
相关问题 更多 >
编程相关推荐