【发布时间】:2017-11-23 15:06:39
【问题描述】:
我有一个生成器函数,它产生一个列表的幂集。我在里面放了一些打印语句,但是当我运行项目时,它们都没有打印任何东西。如果我编写一个只打印“测试”的函数,它可以工作。有人可以帮忙吗?
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)
【问题讨论】:
-
迭代幂集(列表)
-
在您自己的代码中使用像
list这样的内置函数的名称作为变量是一个非常糟糕的主意。使用这样的生成器的自然方式是list(generator(whatever)),但由于您已重新绑定名称list,因此它实际上无法正常工作。
标签: python python-2.7 generator