我有一个发电机功能,产生列表的功率集。我在里面放了一些打印语句,但是当我运行这个项目时,他们都没有打印任何东西。如果我编写一个只打印“测试”的函数,它可以工作。有人可以帮忙吗?发电机功能不工作python
def powerSet(items):
print 'test'
N = len(items)
print N
for i in range(2**N):
combo = []
for j in range(N):
if (i >> j) % 2 == 1:
combo.append(items[j])
print combo
yield combo
list = ['a', 'b', 'c']
powerSet(list)
迭代powerSet(list) – haifzhan
在你自己的代码中使用像'list'这样的内建名称作为变量是一个非常糟糕的主意。像这样消耗一个生成器的自然方式是'list(generator(whatever))',但是因为你已经反弹了名字'list',那实际上并不能正常工作。 – Blckknght