`
zh19881105
  • 浏览: 16708 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

生成返回PYTHON__生成器和普通函数的区别

阅读更多

最近研究生成返回,稍微总结一下,以后继续补充:

    

以Range和Xrange为例

    


    

Range

 >>> range(6) 
 [0, 1, 2, 3, 4, 6
 >>>a=range(6)
 >>>type(a)
 <type 'list'>

Xrange

    每日一道理
共和国迎来了她五十诞辰。五十年像一条长河,有急流也有缓流;五十年像一幅长卷,有冷色也有暖色;五十年像一首乐曲,有低音也有高音;五十年像一部史诗,有痛苦也有欢乐。长河永远奔流,画卷刚刚展开,乐曲渐趋高潮,史诗还在续写。我们的共和国正迈着坚定的步伐,跨入新时代。
>>>xrange(6)
xrange(6)
>>>list(xrange(6))
[0, 1, 2, 3, 4, 5
 >>>b=range(6)
>>>type(b)
<type 'xrange'>

由面上的示例可以晓得:
range是存保成一个list,xrange是每次调用生成一个。要生成很大的数字列序的时候,用xrange会比range性能优很多,因为不须要直接占用很大的内存空间,须要用到的时候就直接生成一个。所以xrange做循环的性能比range好,尤其是返回很大的时候,尽量用xrange吧,除非你是要返回一个表列。 

 

文章结束给大家分享下程序员的一些笑话语录: 某程序员对书法十分感兴趣,退休后决定在这方面有所建树。花重金购买了上等的文房四宝。一日突生雅兴,一番磨墨拟纸,并点上了上好的檀香,颇有王羲之风 范,又具颜真卿气势,定神片刻,泼墨挥毫,郑重地写下一行字:hello world.

分享到:
评论

相关推荐

    Python生成器函数

    生成器本质上也是一个迭代器,我的一点理解的话,它也有点像只能执行一轮的单链表,通过 obj.__next__()就获得了当前指针(并不是真的指针)的指向值,同时将将指针指向一下个,过程不可逆,最后一个元素执行完之后...

    详解Python3中yield生成器的用法

    另外一种说法:生成器就是一个返回迭代器的函数,与普通函数的区别是生成器包含yield语句,更简单点理解生成器就是一个迭代器。 使用yield,可以让函数生成一个序列,该函数返回的对象类型是”generator”,通过该...

    详解python列表生成式和列表生成式器区别

    本文实例为大家分享了python(列表生成式/器)的具体代码,供大家参考,具体内容如下 一、列表生成式 #列表生成式是快速生成一个列表的一些公式 numbers = [] for x in range(0,101): numbers.append(x) print...

    Python岗位常规面试题.pdf

    2. 请解释Python中的生成器(Generator)是什么,以及生成器和普通函数的区别。 3. Python中的什么机制实现了迭代器(Iterator)?请说明在Python中如何自定义迭代器。 4. 什么是Python中的闭包(Closure)?请举例...

    解析Python中的生成器及其与迭代器的差异

    对生成器执行next()操作,进行生成器的入口开始执行代码,yield操作向调用者返回一个值,并将函数挂起;挂起时,函数执行的环境和参数被保存下来;对生成器执行另一个next()操作时,参数从挂起状态被重新调用,进入...

    Python 中的生成器是什么,yield又是什么作用

    最近遇到好多python代码中使用yield的 code,表示的是一个函数是一个生成器。什么意思呢 简答就是说,如果一个函数中使用了yield 定义了一个语句,那么这个函数就不在是一个普通的函数,而是一个生成器,也就是说这...

    Python Cookbook

    17.8 从Python可调用的C函数中返回None 611 17.9 用gdb调试动态载入的C扩展 613 17.10 调试内存问题 614 第18章 算法 616 引言 616 18.1 消除序列中的重复 619 18.2 在保留序列顺序的前提下消除其中的重复 ...

    举例详解Python中yield生成器的用法

    当一个函数中含有yield时,它不再是一个普通的函数,而是一个生成器.当该函数被调用时不会自动执行,而是暂停,见第一个例子: 例1: &gt;&gt;&gt; def mygenerator(): ... print 'start...' ... yield 5 ... &gt;&gt;&gt; mygenerator() /...

    python中yield的认识与学习|生成器

    接触python,yield就有点难度啦、都知道包含这个yield的函数就不是普通函数啦。就是一个生成器函数。 类型: 白话,他跟return的区别就是。他会为用户保留一个断点。return,程序执行一次之后,就会一切重新开始。...

    浅谈Python生成器generator之next和send的运行流程(详解)

    对于普通的生成器,第一个next调用,相当于启动生成器,会从生成器函数的第一行代码开始执行,直到第一次执行完yield语句(第4行)后,跳出生成器函数。 然后第二个next调用,进入生成器函数后,从yield语句的下一句...

    Python yield 使用浅析

    初学 Python 的开发者经常会发现很多 Python 函数中用到了 yield 关键字,然而,带有 yield 的函数执行流程却和普通函数不一样,yield 到底用来做什么,为什么要设计 yield ?本文将由浅入深地讲解 yield 的概念和...

    Python语法学习记录

    Python语法学习记录Python语法记录基础部分基本数据类型运算符Number数字数学函数随机函数String字符串字符串函数string与List、Tuple相互转换列表ListList基本操作列表推导式List列表函数列表的复制Tuple元组...

    JavaScript中的迭代器和生成器详解

    在JavaScript 1.7中,迭代器和生成器在JavaScript核心语法中带来了新的迭代机制,而且还提供了定制 for…in 和 for each 循环行为的机制。 迭代器 迭代器是一个每次访问集合序列中一个元素的对象,并跟踪该序列中...

    Python基于QRCode实现生成二维码的方法【下载,安装,调用等】

    本文实例讲述了Python基于QRCode实现生成二维码的方法。分享给大家供大家参考,具体如下: QR码是一种矩阵码,或二维空间的条码,1994年由日本Denso-Wave公司发明。QR是英文Quick Response的缩写,即快速反应的意思...

    彻底搞懂python函数2

    目录一、变量作用域二、lambda表达式三、生成器函数 一、变量作用域 变量起作用的代码范围称为变量的作用域,不同作用域内变量名可以相同,互不影响。 局部变量在函数内部定义的普通变量只在函数内部起作用。当函数...

    《流畅的Python》——读书笔记(1)

    列表推导与生成器表达式 元组不仅仅是不可变的列表:包含记录、拆包、具名元组等功能 切片 序列的增量赋值 list.sort方法与内置函数sorted bisect 当列表不是首选时:数组、内存视图、队列 第3章 字典和集合 第4章 ...

    对python中return与yield的区别详解

    首先比较下return 与 yield的区别: return:在程序函数中返回某个值,返回之后函数不在继续执行,...看做return之后再把它看做一个是生成器(generator)的一部分(带yield的函数才是真正的迭代器),好了,如果你对

    LuaBind 源码 (Lua增强库)

    LuaBind可以处理签名的区别只是const和非const的重载函数. 例如,如果如下的函数和类被注册: struct A { void f(); void f() const; }; const A* create_a();所有权转移 为了正确处理所有权转移问题,create_a()将...

    Python基础教程(第3版)-201802出版-文字版

    久负盛名的 Python 入门经典针对 Python 3 全新升级十个出色的项目,让你尽快可以使用 Python 解决实际问题目录第 1章 快速上手:基础知识 ........................ 1 1.1 交互式解释器 .............................

    python笔记10–异常

    #GeneratorExit:生成器退出(下次课再讲) #Exception:普通异常(只会使用这部分的异常) 异常的传递性 def a(): print(ccc) def b(): a() def c(): b() c()#错误行最后显示,层层寻找 #报错后,后面代码都不...

Global site tag (gtag.js) - Google Analytics