Python学习过程中的笔记,只做自己参考使用:

lambda函数,匿名函数,当我们使用一个函数并且使用完成就删除时,可以使用匿名函数,比如f等于xyz三个之和:

f = lambda x,y,z:x+y+z

生成器和迭代器:

生成器,我们常用的列表一般有两种方式生成,例如:

1、直接写出列表

a = [1,2,3,4,5,6,7,8,9]

2、通过列表生成式生成列表

a = [i*i for i in range(10)]

上述两种列表是我们常用的列表方式,调取方便,随便增删改查取值,但是有可能存在一定的问题,比如列表过大,会占用大量内存,比如100W个值;

因此可以使用生成器的方式来完成:

f = (i*i for i in range(10))
print(f)

这样,运行的结果是:

<generator object <genexpr> at 0x1029809e8>

只返回一个对象,这样生成的列表,有两种调用方式,第一种:

f = (i*i for i in range(10))
print(f)
print(f.__next__())

每次使用__next__()会调用一次,想调用下一次请继续再写一遍这个__next__();

另一种调用方式是使用for循环:

f = (i*i for i in range(10))
print(f)
# print(f.__next__())
for i in f:print(i)

这是简单的列表生成式的生成器,另外一种生成器我们可以使用函数来示例:

__Author__="Jack"def f(number):for i in range(number):yield ireturn "Done"a = f(10)
print(a.__next__())

print的结果是0,如果再写一次print,那结果是0,1,生成器的特点是调用的时候,yield返回的是当前值,使用next返回下一个值,但不能根据index返回,也不能返回上一个值,调用的方式只能使用循环方式调用,比如For循环。

并行运算示例,并演示.send()的使用,使用时,必须在__next__()已经运行过,对生成式进行了初始化,否则send会报错。

__Author__="Jack"def chibaozi(name):print("%s,准备吃包子了!" %name)while True:baozi = yieldprint("包子%s来了,包子被%s吃了!" %(baozi,name))
def zuobaizi():a = chibaozi("A")b = chibaozi("B")a.__next__()b.__next__()print("注意了,老子要做包子了!")for i in range(10):print("做了两个韭菜馅的包子!")a.send(i)b.send(i)
zuobaizi()

迭代器和可迭代对象,我们常用的可以被循环for、while调用的list,tuple,str,dic都是可以迭代的对象,而带有next函数调用的,是迭代器,因此,生成器都是迭代器,但是,列表,字典,字符串和元组不是迭代器,可以转换为迭代器,判断是否可迭代对象:

from collections import Iterable
print(isinstance([], Iterable))

上述返回值是True,因此列表是可迭代对象,判断是否迭代器:

可以通过命令查看是否有Next方法,可以使用dir(xxx)来查看

from collections import Iterator
print(isinstance([], Iterator))

上述列表的返回值是False,因此列表不是迭代器,但如果不是迭代器,可以转换为迭代器,通过iter()内置函数。

from collections import Iterator
print(isinstance([], Iterator))
f = iter([])
print(isinstance(f, Iterator))

其实,平常使用的for循环和读取文件的for i in f:等用的就是迭代器的方法。

转载于:https://www.cnblogs.com/JackNiu/p/6857372.html

Python学习笔记-2017.5.4thon学习笔记-2017.5.14相关推荐

  1. Python学习笔记-2017.5.4thon学习笔记-2017.8.14

    #hashlib模块,用来加密 import hashlib m = hashlib.md5()#生成一个加密对象 m.update(b"hello")#更新对象,如果有中文,需要 ...

  2. Python的dict字典结构操作方法学习笔记

    Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...

  3. python structure_GitHub - CYZYZG/Data_Structure_with_Python: 这是我在学习《基于Python的数据结构》的时候的笔记与代码...

    Data_Structure_with_Python 这是我在学习<基于Python的数据结构>的时候的笔记与代码 主要参考:数据结构与算法(Python) 对于算法的时间效率,我们可以用 ...

  4. python基础学习[python编程从入门到实践读书笔记(连载一)]

    写在前面:本文来自笔者关于<python编程从入门到实践>的读书笔记与动手实践记录. 程序员之禅 文章目录 02变量和简单数据类型 03 列表简介 04 操作列表 05 if语句 06 字 ...

  5. python人工智能入门纳米学位_学习笔记(一) - 机器学习纳米学位

    不久前我在Udacity报名了数据分析和机器学习两门纳米课程.之所以对这个感兴趣是因为关注人工智能方面的资讯有一段时间了,觉得这是未来的趋势,希望今后能够在这方面有所成绩.选择纳米课程是因为我觉得它与 ...

  6. 23神经网络 :唐宇迪《python数据分析与机器学习实战》学习笔记

    唐宇迪<python数据分析与机器学习实战>学习笔记 23神经网络 1.初识神经网络 百度深度学习研究院的图,当数据规模较小时差异较小,但当数据规模较大时深度学习算法的效率明显增加,目前大 ...

  7. 将MNIST手写数字数据集导入NumPy数组(《深度学习入门:基于Python的理论与实现》实践笔记)

    将MNIST手写数字数据集导入NumPy数组(<深度学习入门:基于Python的理论与实现>实践笔记) 一.下载MNIST数据集(使用urllib.request.urlretrieve( ...

  8. 《深度学习入门-基于Python的理论与实现》学习笔记1

    <深度学习入门-基于Python的理论与实现>学习笔记1 第一章Python入门 Python是一个简单.易读.易记的编程语言,可以用类似于英语的语法进行编写程序,可读性高,且能写出高性能 ...

  9. 大学学python用记笔记吗_3年Python程序员平时学习笔记总结,对于学习Python非常有帮助!...

    一.可迭代对象.迭代器对象和生成器 像list, tuple等这些序列是可以使用for...in ...语句来进行遍历输出的.这是为什么呢?这就需要知道可迭代对象(Iterable).迭代器对象(It ...

  10. 《基于Python的金融分析与风险管理》学习笔记

    目录 第1部分  入门篇 第1章  Python概览 1.1  Python的定义与比较优势 1.1.1  Python简介 1.1.2  Python的比较优势 1.2  Python之父-吉多·范 ...

最新文章

  1. Windows Embedded Standard开发初体验(二)
  2. MySQL事务的可串行化
  3. java迷宫队列实现_Creator 迷宫生成: DFS 与 BFS 算法实现
  4. etc/ld.so.conf
  5. 【编译原理】文法的基本概念
  6. lua __index __newindex upvalue 示例
  7. 吴恩达深度学习 —— 2.9 逻辑回归中的梯度下降法
  8. 【C#.NET】ASP.NET状态管理之四:Cache
  9. risksystem_《环境风险评价系统(RiskSystem)》1.1版
  10. jersey子资源api使用和源码分析
  11. win7家庭版计算机桌面,win7家庭普通版如何显示桌面图标
  12. 《Deep Learning for Visual Tracking: A Comprehensive Survey》
  13. 用Python实现一个电影订票系统
  14. 「实用工具—LICEcap」写博必备|动图制作|一键生成gif(GIF)
  15. No thread-bound request found: Are you referring to request attributes outside of an actual web
  16. 使用谷歌浏览器模拟发送http请求
  17. 用计算机对视频进行剪裁和编辑,爱剪辑怎么裁剪视频片段?
  18. Excel 2010 VBA 入门 004 保存带有宏的工作薄
  19. Balsamiq Mockups简单介绍(UI草图绘制工具)
  20. JAVA读取邮件 [AUTH] Username and password not accepted

热门文章

  1. 【Tensorflow2.0】8、tensorflow2.0_hdf5_savedmodel_pb模型转换[1]
  2. mysql登录密码mysql重置root密码
  3. 怎样用计算机算出54188,2010年考研计算机考生给教育部长的一封信(转自猫扑)...
  4. 《光剑文集》拾叶: 24首
  5. 前端时尚好用的图标项目-Font Awesome
  6. excel的图表里如何添加上下标
  7. python乌龟吃鱼_关于乌龟吃鱼游戏的问题
  8. 新浪微博登陆页面html代码,仿新浪微博登陆邮箱提示效果的js代码
  9. struts2联网问题
  10. android录屏存在什么位置,安卓视频录制在哪里