当前位置:  编程技术>python

python之yield表达式学习

    来源: 互联网  发布时间:2014-10-11

    本文导语:  python中有一个略微奇怪的表达式叫yield expression,本文就来探究一下这是个什么东西。一步一步来。 iterable 代码如下: mylist = [1,2,3] for item in mylist:     print str(item) mylist是一个列表(list),我们可以逐条取出每一个item,这...

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是一样的。但是(重点来了):

    
 
 

您可能感兴趣的文章:

  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • python正则表达式去掉数字中的逗号(python正则匹配逗号)
  • Python 匹配任意字符(包括换行符)的正则表达式写法
  • python实现问号表达式(?)的方法
  • Python 执行字符串表达式函数(eval exec execfile)
  • python基础教程之lambda表达式使用方法
  • python正则表达式re模块详解
  • Python常用正则表达式符号浅析
  • python正则表达式判断字符串是否是全部小写示例
  • python 正则表达式 反斜杠(/)的麻烦和陷阱
  • python使用正则表达式检测密码强度源码分享
  • python 中的列表解析和生成表达式
  • python正则表达式修复网站文章字体不统一的解决方法
  • python实现统计汉字/英文单词数的正则表达式
  • Python模块学习 re 正则表达式
  • python正则表达式抓取成语网站
  • python 正则表达式 概述及常用字符
  • python中 ? : 三元表达式的使用介绍
  • Python正则表达式的七个使用范例详解
  • Python正则表达式的使用范例详解
  • Python中正则表达式的用法实例汇总
  • Python 中文正则表达式笔记
  • python的正则表达式re模块的常用方法
  • PYTHON正则表达式 re模块使用说明
  • python正则表达式re模块详细介绍
  • Python 正则表达式操作指南
  • 比较详细Python正则表达式操作指南(re使用)
  • python re正则表达式模块(Regular Expression)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • juqery的python实现:pyquery学习使用教程
  • python学习手册中的python多态示例代码
  • php和perl,python,学习哪种编程语言好。
  • python 基础学习第二弹 类属性和实例属性
  • 学习python的几条建议分享
  • Python学习笔记_数据排序方法
  • 学习python处理python编码问题
  • Python学习笔记(一)(基础入门之环境搭建)
  • pyv8学习python和javascript变量进行交互
  • 技巧学习 在Python环境下连接Oracle数据库
  • python抓取豆瓣图片并自动保存示例学习
  • python线程锁(thread)学习示例
  • Python模块学习 filecmp 文件比较
  • python笔记(1) 关于我们应不应该继续学习python
  • Python日期操作学习笔记
  • Python函数学习笔记
  • Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
  • Python 学习笔记
  • Python模块学习 re 正则表达式 iis7站长之家
  • python list语法学习(带例子)
  • python网络编程学习笔记(二):socket建立网络客户端
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • 让python同时兼容python2和python3的8个技巧分享
  • Python不使用print而直接输出二进制字符串
  • 使用setup.py安装python包和卸载python包的方法
  • Python中实现json字符串和dict类型的互转
  • 不小心把linux自带的python卸载了,导致安装一个依赖原python的软件不能安装,请问该怎么办?
  • python异常信息堆栈输出到日志文件
  • Python开发者社区整站源码 Pythoner
  • python下用os.execl执行centos下的系统时间同步命令ntpdate
  • python读取csv文件示例(python操作csv)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3