python迭代器实例简析

yipeiwu_com5年前Python基础

本文实例讲述了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程序设计的学习有所帮助。

相关文章

解决pyqt5中QToolButton无法使用的问题

当你使用pyqt中的QToolButton的时候,如果想实现按下和抬起分别实现不同的功能,必须要加上这句话: self.btn_1.setCheckable(True) 设置一个t...

python如何获取列表中每个元素的下标位置

Git是编程中的基本技能之一,互联网公司几乎都在使用Git进行协作编程,昨天还有位禅友在微信上专门告诉我说星期五面试的时候刚好被问到 Git,幸好在这几天学了一下。Git并不难,但会Gi...

python 实现分页显示从es中获取的数据方法

注意:使用该方法,获取的数据总数目不能超过1万,否则出错 #在python3上运行 from elasticsearch import Elasticsearch from urll...

Python原始字符串(raw strings)用法实例

本文实例讲述了Python原始字符串(raw strings)用法,分享给大家供大家参考。具体如下:   Python原始字符串的产生正是由于有正则表达式的存在。原因是ASCI...

详解Python中with语句的用法

引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入...