next() 调用不迭代
next() call not iterating
var = 10
Constant = 10
def Gen():
i = 1
for x in range(var):
yield i
i +=1
o = Gen()
c = next(o) * Constant
for i in range(var):
print(c)
我尝试过的和他们的错误:
c = {next(o)} * Constant
#unsupported operand type(s) for *: 'set' and 'int'
c = int({next(o)}) * Constant
#int() argument must be a string, a bytes-like object or a real number, not 'set'`
预期输出:
10
20
30
40
...
当您调用 next()
时,您只要求一个值。由于您想迭代生成器返回的值,您可以编写一个循环或一个集合理解,例如:
c = {z * Constant for z in o}
您使用的语法只是得到一个值,将其放在 set
中,然后尝试将 set
乘以 Constant
。
旁注:为什么是 set
而不是 list
?
var = 10
Constant = 10
def Gen():
i = 1
for x in range(var):
yield i
i +=1
o = Gen()
c = next(o) * Constant
for i in range(var):
print(c)
我尝试过的和他们的错误:
c = {next(o)} * Constant
#unsupported operand type(s) for *: 'set' and 'int'
c = int({next(o)}) * Constant
#int() argument must be a string, a bytes-like object or a real number, not 'set'`
预期输出:
10
20
30
40
...
当您调用 next()
时,您只要求一个值。由于您想迭代生成器返回的值,您可以编写一个循环或一个集合理解,例如:
c = {z * Constant for z in o}
您使用的语法只是得到一个值,将其放在 set
中,然后尝试将 set
乘以 Constant
。
旁注:为什么是 set
而不是 list
?