本文实例讲述了Python字典生成式、集合生成式、生成器用法。分享给大家供大家参考,具体如下:

字典生成式:

跟列表生成式一样,字典生成式用来快速生成字典,不同的是,字典需要两个值

#d = {key: value for (key, value) in iterable}

d1 = {"x": 1, "y": 2, "z": 3}

d2 = {k: v for (k, v) in d1.items()}

print(d2)

集合生成式:

集合生成式格式和列表生成式类似,不过用的是大括号:

s1={x for x in range(10)}

print(s1)

生成器:

生成器是一种迭代过程才生成对应元素的可迭代对象

生成器的元素在访问前不会生成,只有当访问时才会生成,如果继续向后访问,那么当前的元素会销毁。

生成器的一种生成方式是将列表生成式改为小括号包裹:

print("-----使用()列表生成式生成generator------")

g=(x*x for x in range(10))

print(type(g),g)

print(next(g),next(g),next(g))

生成器本质上是一个函数

当一个生成器被调用时,它返回一个生成器对象,而不用执行该函数。 当第一次调用 next()方法时,函数向下执行,如果遇到yield则返回 yield 后面的值。 再次调用next()方法时,函数从上次结束的位置继续向下执行,如果遇到yield则返回 yield 后面的值。

可以使用yield来定义一个生成器:

print("

----使用yield生成generator-------")

def ge():

print("第一次yield")

yield 1

print("第二次yield")

yield 2

print("第三次yield")

yield 3

o = ge()

print(next(o))

print(next(o))

print(next(o))

运行结果:

----使用yield生成generator-------

第一次yield

1

第二次yield

2

第三次yield

3

生成器本质上是一个函数,如果想要获取这个函数的返回值,我们需要使用异常捕获来获取这个返回值:

def fib(max):

n,a,b = 0,0,1

while n

yield b

a,b =b,a+b

n = n+1

return "done"

print("

-----尝试获得函数返回值------")

gg=fib(6)

while True:

try:

x=next(gg)

print("g:",x)

except StopIteration as e:

print("返回值等于:",e.value)

break

既可以使用next()来迭代生成器,也可以使用for来迭代:

def ge():

print("第一次yield")

yield 1

print("第二次yield")

yield 2

print("第三次yield")

yield 3

o = ge()

print("

---迭代generator的方法--------")

for x in o:

print(x)#相当于进入到generator函数中,执行下去并得到返回值

结果:

---迭代generator的方法--------

第一次yield

1

第二次yield

2

第三次yield

3

由于生成器的特性,可以进行”协程“操作:后续补充

更多关于Python相关内容可查看本站专题:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

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

python字典生成器_Python字典生成式、集合生成式、生成器用法实例分析相关推荐

  1. python中event的用法_Python编程之event对象的用法实例分析

    本文实例讲述了Python编程中event对象的用法.分享给大家供大家参考,具体如下: Python提供了Event对象用于线程间通信,它是由线程设置的信号标志,如果信号标志位为假,则线程等待直到信号 ...

  2. python asyncio教程_python中使用asyncio实现异步IO实例分析

    1.说明 Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接 ...

  3. python asyncio回调函数_python回调函数用法实例分析

    python回调函数用法实例分析 本文实例讲述了python回调函数用法.分享给大家供大家参考.具体分析如下: 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用.回调和异步 ...

  4. python中max函数用法_Python中max函数用法实例分析

    Python中max函数用法实例分析 更新时间:2015年07月17日 15:45:09 作者:优雅先生 这篇文章主要介绍了Python中max函数用法,实例分析了Python中max函数的功能与使用 ...

  5. python中property函数_python 邮件表格Python中property函数用法实例分析

    本文实例讲述了Python中property函数用法.分享给大家供大家参考,具体如下: 通常我们在访问和赋值属性的时候,都是在直接和类(实例的)的__dict__打交道,或者跟数据描述符等在打交道.但 ...

  6. Python实现主成分分析(PCA)降维:原理及实例分析

    转载文章:Python实现主成分分析(PCA)降维:原理及实例分析 简介 降维是由一些问题带来的: 可以缓解由维度诅咒(高维)带来的问题: 可以用来压缩数据,将损失数据最小化: 可以将高维数据降到低维 ...

  7. python整段代码注释-Python中注释(多行注释和单行注释)的用法实例

    Python中注释(多行注释和单行注释)的用法实例 发布时间:2020-09-30 23:18:32 来源:脚本之家 阅读:97 前言 学会向程序中添加必要的注释,也是很重要的.注释不仅可以用来解释程 ...

  8. python 字典 内存_Python 字典(联合内存、联合数组)

    字典 Python有一个内建数据类型是字典(Dictionaries).字典在某些语言中可能称为"联合内存"("associative memories'')或" ...

  9. python字典拷贝_python字典复制

    python学习系列--深拷贝和浅拷贝 概念 普通情况下,复制一个对象是不会新开辟内存空间的,只是把新的对象名称指向原有的内存地址,这种操作其实不是算是拷贝,只是新的引用.把新的对象置于新的内存空间中 ...

  10. python 字典长度_python字典详解

    字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: di ...

最新文章

  1. CQRS学习——最小单元的Cqrs(CommandEvent)[其一]
  2. python输入星期几_Python练习实例31 | 输入首字母,判断是星期几
  3. 腾讯的电商,在东南亚击败了阿里巴巴
  4. nefu java作业2020.3.11第二章
  5. 几种服务器端IO模型的简单介绍及实现(转载)
  6. 云原生的本质_云原生2.0的逻辑之辩,如何让每个企业都成为新云原生企业
  7. easypoi 导入oracle,记一次由openjdk导致的poi错误(easyexcel)
  8. A8. 无人机编队飞行定位分析与讨论-大结局
  9. P4578 [FJOI2018]所罗门王的宝藏
  10. 什么是关联分析?如何利用关联规则做好数据挖掘
  11. MySQL内存表的特性与使用介绍 -- 简明现代魔法
  12. 谷歌大小写转换_如何轻松更改Google文档中文本的大小写
  13. 【学习笔记】线段树详解(全)
  14. android media player实现一个可手势滑动控制 + 可以调节分辨率|字幕|倍速的视频播放器(MediaPlayer + ExoPlayer实现)
  15. HGDB 数据库用户密码参数查询设置
  16. JavaScript奇淫技巧:按键精灵
  17. 长周期光纤光栅 matlab,长周期光纤光栅传输谱的MATLAB仿真
  18. Java jdk14.0.1安装简单步骤
  19. FME+YOLOV7写DNF自动刷图脚本
  20. 计算机相关知识培训新闻稿,不忘初心 磨砺自我 ——计算机学院团委培训顺利进行...

热门文章

  1. 王之泰201771010131《面向对象程序设计(java)》第三周学习总结
  2. 32、出任爬虫公司CEO(爬取职友网招聘信息)
  3. 无需安装软件架设NOD32升级服务器指南!
  4. OSChina 周五乱弹 —— 闹钟一响就睡觉
  5. 和计算机相关的英文名字女孩,简单好听寓意好的英文名字女孩
  6. Kaggle:入门赛Tatanic(泰坦尼克号)84.21%带你冲进前2%
  7. excel中NORM.DIST 的python实现
  8. 安卓开发——MaterialDesign实战
  9. 10.SpringBoot学习(十)——JDBC之 Spring Boot Jpa
  10. 苹果开发者中心密保问题忘了。