我是一个蟒蛇新手。我试图运行此代码片段使用生成器表达式列出范围值,以便用作numpy.histogram第二个参数('a'和'b'是非负整数)。
return ([b] + [(b - a) / 2.0 ** k for k in xrange(1, n)] + [a])[::-1]
但是我收到了类型错误:
Traceback (most recent call last):
File "Untitled Document 1.py", line 25, in <module>
create_bins(a = 0, b = 10)
File "Untitled Document 1.py", line 19, in creat_bins
return ((b) + ((b - a) / 2.0 ** k for k in xrange(1, n)) + (a))[::-1]
TypeError: an integer is required
我搜索了问题和答案,并阅读了许多有关python发生器的详细信息,但我无法找出问题所在。
答案 0 :(得分:-2)
生成器表达式将使用yield
。
如果我使用您的代码(使用range
代替xrange
),则可以使用:
def test(a,b,n):
yield ([b] + [(b - a) / 2.0 ** k for k in range(1, n)] + [a])[::-1]
for i in test(1,2,3):
print(i)