python字典生成器_Python字典生成式、集合生成式、生成器用法实例分析
本文实例讲述了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字典生成式、集合生成式、生成器用法实例分析相关推荐
- python中event的用法_Python编程之event对象的用法实例分析
本文实例讲述了Python编程中event对象的用法.分享给大家供大家参考,具体如下: Python提供了Event对象用于线程间通信,它是由线程设置的信号标志,如果信号标志位为假,则线程等待直到信号 ...
- python asyncio教程_python中使用asyncio实现异步IO实例分析
1.说明 Python实现异步IO非常简单,asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接 ...
- python asyncio回调函数_python回调函数用法实例分析
python回调函数用法实例分析 本文实例讲述了python回调函数用法.分享给大家供大家参考.具体分析如下: 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用.回调和异步 ...
- python中max函数用法_Python中max函数用法实例分析
Python中max函数用法实例分析 更新时间:2015年07月17日 15:45:09 作者:优雅先生 这篇文章主要介绍了Python中max函数用法,实例分析了Python中max函数的功能与使用 ...
- python中property函数_python 邮件表格Python中property函数用法实例分析
本文实例讲述了Python中property函数用法.分享给大家供大家参考,具体如下: 通常我们在访问和赋值属性的时候,都是在直接和类(实例的)的__dict__打交道,或者跟数据描述符等在打交道.但 ...
- Python实现主成分分析(PCA)降维:原理及实例分析
转载文章:Python实现主成分分析(PCA)降维:原理及实例分析 简介 降维是由一些问题带来的: 可以缓解由维度诅咒(高维)带来的问题: 可以用来压缩数据,将损失数据最小化: 可以将高维数据降到低维 ...
- python整段代码注释-Python中注释(多行注释和单行注释)的用法实例
Python中注释(多行注释和单行注释)的用法实例 发布时间:2020-09-30 23:18:32 来源:脚本之家 阅读:97 前言 学会向程序中添加必要的注释,也是很重要的.注释不仅可以用来解释程 ...
- python 字典 内存_Python 字典(联合内存、联合数组)
字典 Python有一个内建数据类型是字典(Dictionaries).字典在某些语言中可能称为"联合内存"("associative memories'')或" ...
- python字典拷贝_python字典复制
python学习系列--深拷贝和浅拷贝 概念 普通情况下,复制一个对象是不会新开辟内存空间的,只是把新的对象名称指向原有的内存地址,这种操作其实不是算是拷贝,只是新的引用.把新的对象置于新的内存空间中 ...
- python 字典长度_python字典详解
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: di ...
最新文章
- CQRS学习——最小单元的Cqrs(CommandEvent)[其一]
- python输入星期几_Python练习实例31 | 输入首字母,判断是星期几
- 腾讯的电商,在东南亚击败了阿里巴巴
- nefu java作业2020.3.11第二章
- 几种服务器端IO模型的简单介绍及实现(转载)
- 云原生的本质_云原生2.0的逻辑之辩,如何让每个企业都成为新云原生企业
- easypoi 导入oracle,记一次由openjdk导致的poi错误(easyexcel)
- A8. 无人机编队飞行定位分析与讨论-大结局
- P4578 [FJOI2018]所罗门王的宝藏
- 什么是关联分析?如何利用关联规则做好数据挖掘
- MySQL内存表的特性与使用介绍 -- 简明现代魔法
- 谷歌大小写转换_如何轻松更改Google文档中文本的大小写
- 【学习笔记】线段树详解(全)
- android media player实现一个可手势滑动控制 + 可以调节分辨率|字幕|倍速的视频播放器(MediaPlayer + ExoPlayer实现)
- HGDB 数据库用户密码参数查询设置
- JavaScript奇淫技巧:按键精灵
- 长周期光纤光栅 matlab,长周期光纤光栅传输谱的MATLAB仿真
- Java jdk14.0.1安装简单步骤
- FME+YOLOV7写DNF自动刷图脚本
- 计算机相关知识培训新闻稿,不忘初心 磨砺自我 ——计算机学院团委培训顺利进行...
热门文章
- 王之泰201771010131《面向对象程序设计(java)》第三周学习总结
- 32、出任爬虫公司CEO(爬取职友网招聘信息)
- 无需安装软件架设NOD32升级服务器指南!
- OSChina 周五乱弹 —— 闹钟一响就睡觉
- 和计算机相关的英文名字女孩,简单好听寓意好的英文名字女孩
- Kaggle:入门赛Tatanic(泰坦尼克号)84.21%带你冲进前2%
- excel中NORM.DIST 的python实现
- 安卓开发——MaterialDesign实战
- 10.SpringBoot学习(十)——JDBC之 Spring Boot Jpa
- 苹果开发者中心密保问题忘了。