迭代

可以通过 for 循环来遍历 list 或 tuple,这种遍历我们称为迭代(Iteration)
只要是可迭代对象,都可以迭代,比如字典
默认情况下,字典迭代的是key值
如何让判断一个类型是否可迭代

from collections import Iterable    #导入collections模块的Iterable类型判断方法
print(isinstance({'abc':1},Iterable))True

列表生成式

Python 内置的非常简单却强大的可以用来创建 list的生成式

列表生成方法

  • for循环
#输出0~9之间偶数的平方
li= []
for i in range(0,10,2):li.append(i**2)li
[0, 4, 16, 36, 64]
  • 列表生成式
print([i**2 for i in range(0,10,2)])
[0, 4, 16, 36, 64]

列表生成式相对循环语句,代码简洁

#找出1~100之间所有质数
#质数(prime number)又称素数,有无限个。
#质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数。def isprime(num):for i in range(2, num):if num % i == 0:return Falseelse:return Trueval = int(input("请输入一个数:"))
print([i for i in range(2, val) if isprime(i)])请输入一个数:100
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

字典生成式

#合并大小写
#key值最终为小写d1={'a':10,'b':3,'A':10,'B':8}print({k.lower():d1.get(k.upper(),0)+d1.get(k.lower(),0)for k,v in d1.items()}){'a': 20, 'b': 11, 'c': 13}

生成器

通过列表生成式,我们可以直接创建一个列表,受到内存限制,列表容量肯定是有限的
创建一个包含 100 万个元素的列表,占用很大的存储空间

  • 生成器是什么?

在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的 list,从而节省大量的空间。在 Python 中,这种一边循环一边计算的机制,称为生成器(Generator)

读取生成器

  • next()
  • for循环
#Fibnonacci数列
#1,1,2,3,5,8,13,....#yield:函数中带有yield,那么这个函数的返回值就是一个生成器
#如果要执行函数内容,需要调用next方法或者for循环
#当执行next方法时,遇到yield程序停止
#直到下一次next方法时,从上一次yiled停止的地方继续执行,遇到yeild停止
def fibnnonacci(num):   #num表示将来显示几个值a,b,count = 0,1,0   #count是已经显示过的次数while count<=num:yield ba,b = b,a+bcount+=1
res = fibnnonacci(100)
print(next(res))
print(next(res))
print(next(res))
print(next(res))1
1
2
3Process finished with exit code 0

python_bomb----函数高级特性(生成器)相关推荐

  1. 廖雪峰python - 高级特性 - 生成器 _ 练习详解

    杨辉三角:每个数等于它上方两数之和.空位看作0 答案: #定义函数 def triangles():L = [1] // L是只含1的list(列表)yield L // generator的函数遇到 ...

  2. Python高级特性:切片、迭代、列表生成式、生成器与迭代器

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 接着廖雪峰老师的学习教程,小编要开始加快推进Python的学习进程 ...

  3. python函数第二次运行报错_Python学习笔记2-函数、高级特性

    函数 调用函数 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数 >>> abs(100) 100 >>> abs(-20) 20 ...

  4. Python高级特性(切片,迭代,列表生成式,生成器,迭代器)

    掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 比如构造一个1, 3, 5, 7, ..., 99的列表,可以通过循环实现: L = [] n = 1 while n ...

  5. 【Python基础】Python高级特性:切片、迭代、列表生成式、生成器与迭代器

    接着廖雪峰老师的学习教程,小编要开始加快推进Python的学习进程了.今天的笔记内容是Python高级特性,其中包括快速访问对象类型元素的切片.循环中的迭代意义.方便的列表生成式操作以及生成器和迭代器 ...

  6. python的高级特性:切片,迭代,列表生成式,生成器,迭代器

    python的高级特性:切片,迭代,列表生成式,生成器,迭代器 1 #演示切片 2 k="abcdefghijklmnopqrstuvwxyz" 3 #取前5个元素 4 k[0:5 ...

  7. python自定义高阶函数_python基础知识5(集合,高级特性,高阶函数)

    ** 删除列表中重复的元素:l = [1,2,3,1,2,3] - 强制转化列表为集合类型:list(set(l)) - 将列表转化为字典,拿出里面的所有key值: dict.fromkeys(l). ...

  8. python generator长度_Python 高级特性之:生成器(generator)和迭代器(Iterator)

    前言: 之前学习Python自动化,接触了不少python的学习,对生成器印象尤其深,网上也看了很多介绍,下面主要是这些概念的个人学习整理(如侵删). 正文: 如要创建一个非常大的列表,受到内存限制, ...

  9. 深入详解python高级特性——函数柯里化(Currying)与反柯里化

    前言:本章的内容本来很简单,但是涉及到的理论部分相对较多,想要彻底弄懂前因后果需要具备以下几个知识点, (1)python的高阶函数 (2)python的装饰器本质 (3)Python的functoo ...

最新文章

  1. Pylearn2之YAML
  2. TreeView控件二(递归算法)
  3. ansys怎么删除线段_科学网—ansys常用命令 - 刘敬寿的博文
  4. 使IE6下PNG背景图片透明的七种方法
  5. 中国建筑行业2020年度回顾及未来展望
  6. @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 注解的作用
  7. 测试基础-04-用例的编写评审
  8. LCDM--商品潜在互补性发现模型
  9. mac下载站,这个可以收藏看看
  10. 电驴让分享继续 服务器不稳定,为什么越来越多的人不再使用eD2k了?回顾电驴的兴与衰...
  11. 如何免费下载付费音乐歌曲,6个网站+8个APP
  12. python——个税计算器
  13. [置顶] 代码审查工具FxCop建议采用的规则总结
  14. 镭速快答:网页端无法连接镭速,提示未启动怎么办?
  15. 代码审计[java安全编程]
  16. Java210道常见的面试
  17. 腾讯云服务器修改和重置登录密码图文教程
  18. 某无人机飞控系统的原理、组成及各传感器的作用
  19. 最新京东短信登录,免费送JDCK获取短信登录
  20. 如画的水乡,如画的同里1012

热门文章

  1. 简单几步解决企业USB端口隐患
  2. 23hibernate_pessimistic_locking
  3. 使用Linq Xml 来读取一个目录下所有的文件并保存为Xml文档
  4. Luogu P4479 [BJWC2018]第k大斜率
  5. git生成public key
  6. Android利用RecyclerView实现列表倒计时
  7. 仙剑奇侠传 游戏 开发 教程 Xianjian qixia development Game development tutorial
  8. awstats 安装
  9. 企业架构在中国的本地化发展
  10. [导入]Actual Windows Manager 3.7