2010-01-31 58 views
0

我想将我的函数binomal_aux的结果保存到一个元组中,但我不知道如何,这里是我现在的代码。返回binomal作为元组

def binomal (n):  
    i=0 
    for i in range(n): 
     binomal_aux(n,i) #want this to be in a tuple so, binomal (2) = (1,2,1) 
    return 

def binomal_aux (n,k): 
    if (k==0): 
     return 1 
    elif (n==k): 
     return 1 
    else: 
     return (binomal_aux(n-1,k) + binomal_aux(n-1,k-1)) 
+0

注:它的拼写二项式,不binomal。 – MatrixFrog 2010-01-31 21:42:36

+0

您不需要在for循环之前声明/定义'i',也不需要函数末尾的'return'。 – MatrixFrog 2010-01-31 21:43:55

+1

好的,还有一个。你的if/elif可以简单地替换为:'if k == 0 or k == n:',或者甚至'如果k in(0,n):' – MatrixFrog 2010-01-31 21:45:27

回答

2

在你binomal功能,只要你想返回的元组。

def binomal(n): 
    return tuple(binomal_aux(n, i) for i in range(n+1)) 

还要注意正确的拼写是binomal

0
def binomal (n):  
    return tuple(binomal_aux(n,i) for i in range(n+1)) 
+0

改变了返回元组(binomal_aux(n,i)在范围(n + 1)) 并完美谢谢一堆! – Mike 2010-01-31 21:44:10

0

另一种方法:

def binomal(n): 
    from itertools import combinations 
    return tuple(len(list(combinations(range(n), r=t))) for t in range(n + 1))