当前位置: 首页 > 编程笔记 >

python之yield表达式学习

吴弘壮
2023-03-14
本文向大家介绍python之yield表达式学习,包括了python之yield表达式学习的使用技巧和注意事项,需要的朋友参考一下

python中有一个略微奇怪的表达式叫yield expression,本文就来探究一下这是个什么东西。一步一步来。

iterable


mylist = [1,2,3]

for item in mylist:

    print str(item)

mylist是一个列表(list),我们可以逐条取出每一个item,这个过程叫做iteration。像list这样可以用”for…in…”依次遍历的对象被称为iterable,其他的iterable还有string、tuple、dict等。iterable的一个特点是所有的item会存储到内存中,这样会产生一些不便和不利的地方,于是催生了generator(后面讲到)。

list comprehension(列表推导式)


mylist = [x*x for x in range(3)]


表达式右边是一个for循环的简写形式,用[]包裹起来(称为list comprehension),表达式的值是一个list,我们可以像普通list那样使用”for…in…”遍历其元素,如:

for item in mylist:

    print str(item)

generator

generator

对上面的list comprehension稍作修改:


mygenerator = (x*x for x in range(3))

for item in mygenerator:

    print item


可以看到只是把[]换成了(),这时表达式的值不再是list,而是一个generator。

generator也属于iterable,但是其调用方式非常特别。

yield


def creatGenerator():

    mylist = range(3)

    for x in mylist:

        yield x*x

        

mygenerator = creatGenerator()

for x in mygenerator:     print(x)


yield的使用方法和return是一样的。但是(重点来了):

 类似资料:
  • 问题内容: 我知道yield将函数转换为生成器,但是yield表达式本身的返回值是多少?例如: 该函数执行时变量的值是什么? 我已经阅读了Python文档:http : //docs.python.org/reference/simple_stmts.html#grammar- token-yield_stmt, 并且似乎没有提及yield表达式本身的值。 问题答案: 您还可以将值赋给生成器。如果

  • 本文向大家介绍AngularJS基础学习笔记之表达式,包括了AngularJS基础学习笔记之表达式的使用技巧和注意事项,需要的朋友参考一下 AngularJS通过表达式将数据绑定到HTML。 AngularJS表达式   AngularJS表达式写在双大括号中:{{ 表达式语句 }}。   AngularJS表达式绑定数据到HTML的方式与ng-bind指令的方式相同。   AngularJS会准

  • 本文向大家介绍Python正则表达式学习小例子,包括了Python正则表达式学习小例子的使用技巧和注意事项,需要的朋友参考一下 正则表达式是处理字符串的强大工具。作为一个概念而言,正则表达式对于Python来说并不是独有的。但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别。 (1)匹配1-100之间的数 (100|[1-9]\d{0,1})$ 100可以匹配100 | 或者匹配

  • Matplotlib 中的文本字符串都可以使用 Text Markup(一种文本标记语言)显现出来,具体的使用方法是将文本标记符放在一对美元符号 内,语法格式如下: 如果要绘制下标和上标,您需要使用 和 符号,下面是一个简单的示例: 上面代码的输出结果: Matplotlib数学表达式绘制 从上述示例可以看出,虽然数学表达式种类繁多,但是 Matplotlib 对各种数学符号都做了良好的支持。

  • 本文向大家介绍javascript正则表达式学习之位置匹配,包括了javascript正则表达式学习之位置匹配的使用技巧和注意事项,需要的朋友参考一下 一、前言 正则表达式是匹配模式,要么是匹配字符,要么匹配位置。 其实在开发中很少用到匹配位置,本篇文章主要包含: 二、什么是位置 位置:相邻字符之间的位置。 三、如何匹配位置 在ES5中,共有6个锚:^, $, \b, \B, (?=p), (?!

  • 本文向大家介绍学习JavaScript正则表达式,包括了学习JavaScript正则表达式的使用技巧和注意事项,需要的朋友参考一下 JavaScript正则表达式学习: 有个在线调试正则的工具。下面的所有示例代码,都可以在codepen上查看到。 1.创建正则表达式 1)正则表达式字面量在脚本加载后编译。若你的正则表达式是常量,使用这种方式可以获得更好的性能。 2)使用构造函数,提供了对正则表达式