如何使函数foo生成所有的点?

时间:2014-08-07 11:04:58

标签: python

这是我的代码:

point = (3,6,9) # let all the elements of the tuple be none negative integers


def foo(point):
    for i in range(point[0]+1):
        for j in range(point[1]+1):
            for k in range(point[2]+1):
                yield (i,j,k)

我的问题是:   如果我事先不知道元组的长度怎么办?   如何使函数foo将任何元组作为参数并执行相同的操作?例如如果point = (3,6,9,0,7)怎么办?

1 个答案:

答案 0 :(得分:2)

改为使用itertools.product()

from itertools import product

def foo(point):
    for combo in product(*(range(i + 1) for i in point)):
        yield combo