python列表生成器迭代器实例解析

yipeiwu_com7年前Python基础

这篇文章主要介绍了python列表生成器迭代器实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

列表生成式

例如 有一个列表

a =[2,3,4,5]

需要将列表都加上1

#第一种方法
for i in map(lambda i:i+1,a)
#第二种方法
for index,i in enumerate(a):
  a[index] +=1

print(a)
#第三种,简单列表生成式
a = [i+1 for i in a]
print(a)
#加个三元运算符
a = [ i *2 if i>3 else i for i in a]

1.列表生成器_惰性运算

1.1 生成器

中括号就是列表生成式,小括号就是列表生成器

a = ( i *2 for i in range(a))

def fib(num):
  count = 0
  a,b = 0 ,1 #a=0, b= 1
  while count < num:
    tmp = a
    a = b
    b = a + tmp
    #print(a)
    count +=1
    yield a #返回a, 同时挂起当前这个函数, a返回给了通过__next__()调用当前函数的人
    #return a
  print("done...")

f = fib(10)
print(f.__next__())

迭代器

所有的生成器都是迭代器,迭代器不一定都是生成器(不同的角度,用iter方法,python

内存对象认为迭代器,从本质上就一回事)

例如 python 3里面 range(0,10) 这实际上就是一个迭代器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python开发微信公众平台的方法详解【基于weixin-knife】

本文实例讲述了Python开发微信公众平台的方法。分享给大家供大家参考,具体如下: 这两天将之前基于微信公众平台的代码重构了下,基础功能以库的方式提供,提供了demo使用的是django...

Windows系统下PhantomJS的安装和基本用法

Windows系统下PhantomJS的安装和基本用法

1.安装 下载网址:http://phantomjs.org/download.html 选择合适的版本。然后解压即可。 环境变量的配置: 进入解压的路径: 例如我是解压在D:\Py...

通过celery异步处理一个查询任务的完整代码

今天介绍通过celery实现一个异步任务。有这样一个需求,前端发起一个查询的请求,但是发起查询后,查询可能不会立即返回结果。这时候,发起查询后,后端可以把这次查询当作一个task,并立即...

使用pygame写一个古诗词填空通关游戏

使用pygame写一个古诗词填空通关游戏

之前写的诗词填空的游戏支持python2,现在对程序进行了修改,兼容支持python2和python3,附下效果图。 下面是两个主程序 idiom_lib.py代码: # -*-...

python微信跳一跳系列之自动计算跳一跳距离

python微信跳一跳系列之自动计算跳一跳距离

到现在为止,我们通过前面几篇博文的描述和分析,已经可以自动实现棋子、棋盘位置的准确判断,计算一下两个中心点之间的距离,并绘制在图形上,效果如下。 效果 图中的棋子定位采用HSV颜色识别...