相关疑难解决方法(0)

Python:生成器表达式与yield

在Python中,通过生成器表达式创建生成器对象与使用yield语句之间有什么区别吗?

使用产量:

def Generator(x, y):
    for i in xrange(x):
        for j in xrange(y):
            yield(i, j)
Run Code Online (Sandbox Code Playgroud)

使用生成器表达:

def Generator(x, y):
    return ((i, j) for i in xrange(x) for j in xrange(y))
Run Code Online (Sandbox Code Playgroud)

这两个函数都返回生成元组的生成器对象,例如(0,0),(0,1)等.

一个或另一个的任何优点?思考?


谢谢大家!这些答案中有很多很棒的信息和进一步的参考资料!

python yield generator

82
推荐指数
7
解决办法
3万
查看次数

在Python 3.3中将生成器与yield一起返回

在Python 2中,当函数定义中的return与yield一起时,出现了错误.但对于Python 3.3中的这段代码

def f():
  return 3
  yield 2

x = f()
print(x.__next__())
Run Code Online (Sandbox Code Playgroud)

没有错误,返回用于带有yield的函数.但是,当__next__调用该函数时,会抛出异常StopIteration.为什么不只是返回价值3?这种回报是否被忽略了?

python generator python-3.x

48
推荐指数
2
解决办法
2万
查看次数

在Python中获取yield后的return值

我想知道在函数中执行完所有yield之后如何获取函数的返回值,如下所示:

def gen_test():
    l = []
    for i in range(6):
        l.append(i)
        yield i
    # i want to know this value after all iteration of yield
    return l
Run Code Online (Sandbox Code Playgroud)

python yield

6
推荐指数
1
解决办法
2300
查看次数

标签 统计

python ×3

generator ×2

yield ×2

python-3.x ×1