本文实例讲述了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. Linux 内核进程管理之进程ID
  2. 图像滤镜艺术---图像滤镜晕影调节算法研究
  3. Qt动态多语言的实现(VS2012开发)
  4. 《JavaScript 高级程序设计》笔记 第1~5章
  5. android开发适配深色模式,手机不支持深色模式,如何用软件解决深色模式的问题?(附有系统全局深色模式实现方法...
  6. c语言数组如何把一串数字存入数组_C语言经典编程题(下)
  7. 【Python】Python3.7.3 - sys.path 模块搜索路径详解
  8. 对于DSH算法损失函数的理解
  9. MySQL的SQL 语句:根据从表记录个数对主表排序
  10. apache poi处理表格示例
  11. mysql workbench首页_MySQL Workbench是干什么的?
  12. 栅栏密码(Fence crypto)
  13. MRP专题二:计划策略(MTS)
  14. matlab 整流滤波,基于Matlab_Simulink的整流滤波电路的建模与仿真
  15. 核密度估计_拔剑-浆糊的传说_新浪博客
  16. zotero+PDF expert+坚果云+iPad
  17. MacBook关闭系统更新
  18. 安卓 TextView显示温度符号
  19. ORACLE数据库日期更新到时分秒格式
  20. 数商云:以数字化全面促进传统产业升级,纺织行业最大限度实现精益管理

热门文章

  1. win10清理c盘_系统慢?给你的C盘减减肥!
  2. MVC 生成PDf表格并插入图片
  3. 重磅来袭!这几款手机软件绝对的深入人心!
  4. android 程序启动监听,监听开机自动启动应用
  5. win7安装micropython串口驱动失败
  6. Excel 中 YEAR 函数公式语法和用法示例介绍
  7. kail Linux局域网内攻击IP 断开目标用户上网
  8. OWASP TOP 10 及防御
  9. unity3d让模型不受3dCamera FOV的影响
  10. 支付宝转账支付宝转卡(H5飞行模式)