python迭代器实例简析


Posted in Python onSeptember 25, 2014

本文实例讲述了python迭代器的简单用法,分享给大家供大家参考。具体分析如下:

生成器表达式是用来生成函数调用时序列参数的一种迭代器写法

生成器对象可以遍历或转化为列表(或元组等数据结构),但不能切片(slicing)。当函数的唯一的实参是可迭代序列时,便可以去掉生成器表达式两端>的圆括号,写出更优雅的代码:

>>>> sum(i for i in xrange(10))
 45

sum声明:

sum(iterable[, start])
Sums start and the items of an iterable from left to right and returns the total. start defaults to 0. The iterable‘s items are normally numbers, and are not allowed to be strings. The fast, correct way to concatenate a sequence of strings is by calling ''.join(sequence). Note that sum(range(n), m) is equivalent to reduce(operator.add, range(n), m) To add floating point values with extended precision, see math.fsum().

参数要求传入可迭代序列,我们传入一个生成器对象,完美实现。

注意区分下面代码:

上面的j为生成器类型,下面的j为list类型:

j = (i for i in range(10)) 
print j,type(j) 
print '*'*70 
 
j = [i for i in range(10)] 
print j,type(j)

结果:

<generator object <genexpr> at 0x01CB1A30> <type 'generator'>
**********************************************************************
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] <type 'list'>

希望本文所述对大家Python程序设计的学习有所帮助。

Python 相关文章推荐
记录Django开发心得
Jul 16 Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
Oct 18 Python
Python实现计算最小编辑距离
Mar 17 Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 Python
python实现扫描日志关键字的示例
Apr 28 Python
Python学习小技巧总结
Jun 10 Python
对python GUI实现完美进度条的示例详解
Dec 13 Python
Python matplotlib画图与中文设置操作实例分析
Apr 23 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
python中selenium操作下拉滚动条的几种方法汇总
Jul 14 Python
Pytorch基本变量类型FloatTensor与Variable用法
Jan 08 Python
Python+OpenCV图像处理——实现轮廓发现
Oct 23 Python
Python中itertools模块用法详解
Sep 25 #Python
Python中unittest用法实例
Sep 25 #Python
跟老齐学Python之赋值,简单也不简单
Sep 24 #Python
跟老齐学Python之深入变量和引用对象
Sep 24 #Python
Python greenlet实现原理和使用示例
Sep 24 #Python
跟老齐学Python之数据类型总结
Sep 24 #Python
跟老齐学Python之集合的关系
Sep 24 #Python
You might like
一些花式咖啡的配方
2021/03/03 冲泡冲煮
php预定义常量
2006/12/25 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
Laravel框架学习笔记(一)环境搭建
2014/10/15 PHP
简单介绍win7下搭建apache+php+mysql开发环境
2015/08/06 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
js动态设置div的值下例子
2013/10/29 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
浅析jquery的js图表组件highcharts
2014/03/06 Javascript
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
node.js中的fs.chmodSync方法使用说明
2014/12/18 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
js实现微博发布小功能
2017/01/12 Javascript
JavaScript中最常用的10种代码简写技巧总结
2017/06/28 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
angular将html代码输出为内容的实例
2018/09/30 Javascript
详解三种方式解决vue中v-html元素中标签样式
2018/11/22 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
2020/04/03 Javascript
python获取局域网占带宽最大3个ip的方法
2015/07/09 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
DataFrame 将某列数据转为数组的方法
2018/04/13 Python
django中的图片验证码功能
2019/09/18 Python
Python多进程编程multiprocessing代码实例
2020/03/12 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
党风廉政建设责任书
2014/04/14 职场文书
《夹竹桃》教学反思
2014/04/20 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
人事任命通知书
2015/04/21 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
JVM入门之类加载与字节码技术(类加载与类的加载器)
2021/06/15 Java/Android
SQL Server实现分页方法介绍
2022/03/16 SQL Server