如何更有效地编写辅助函数的代码?

时间:2018-11-06 23:38:31

标签: python python-3.x

def partition(v, l):
    if l == []:
        return newList
    for i in l:
        if v == l[0]:
            newList[0].append(i)
            return partition(v, l[1:])
        else: 
            newList[1].append(i)
            return partition(v, l[1:])
newList = [[], []]

elementCounter= []
def countDistinct(l):  
    if l == []:
        return len(elementCounter)
    elif len(l)>0:
        return (elementCounter + [partition(l[0], l)[0]]) + countDistinct(partition(l[1], l)[0])
print(countDistinct([1,1,1,1, 2,3,4,5,8,8,8,8]))

当我尝试通过countDistinct递归调用partition时,递归深度一直超过最大限制。我已经尝试了许多不同的方法来执行此操作,但它不起作用。分区本身可以很好地工作,但是如何使它与countDistinct一起使用?

0 个答案:

没有答案