欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

python的列表生成式,生成器和generator对象你了解吗

时间:2022-11-07 09:37:48|栏目:Python代码|点击:

列表生成式

可以使用列表生成式生成 列表元素。

例如:

在这里插入图片描述

列表还支持 if … else 与 for 循环组合的单行表达式进行初始化。

>>> example = [i*i if i%2 == 0 else 2*i for i in range(1,11)] # 1~10中,奇数*2,偶数平方
>>> print ([i for i in range(1,11)]) # 对照组,1~10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> example
[2, 4, 6, 16, 10, 36, 14, 64, 18, 100]

在这里插入图片描述

当然,if … else 本就支持单行写法。

>>> a = 100
>>> if a < 100:
...     print("lt 100")
... elif a == 100:
...     print("eq 100")
... else:
...     print("gt 100")
...
eq 100
>>>
>>> # 如果将上述if...else写为单行式
... print("lt 100") if a < 100 else print("eq 100") if a == 100 else print("gt 100")
eq 100

在这里插入图片描述

列表表达式初始化 dict 或 set

同时,我们也可以使用单行for初始化 set

在这里插入图片描述

还可以用于提取list的下标与元素,需要注意的是,如果使用  的key:value的形式,最终结果是dict。

在这里插入图片描述

generator对象

探索,是否可以类比上述,生成tuple。当我这么做的时候,结果获得一个generator类型。

在这里插入图片描述

简单来说返回的generator是一个可迭代对象,因此我们尝试使用 for 遍历它的时候,是可以遍历得到其所有数据的。

在这里插入图片描述

而这里的 可迭代对象(Iterable)主要指可以直接作用于for循环的对象(for循环本质上就是通过不断调用next()函数进行迭代)。

包括内置的(listtupledictsetstr等)和生成器(generator)。

生成generator对象

主要有两种方法:

  • 第一种使用 () 包裹列表生成式
  • 第二种,使用 yield 标记

示例:演示yield

在这里插入图片描述

这里可以通过 next() 获取内部元素

在这里插入图片描述

总结

上一篇:NDArray 与 numpy.ndarray 互相转换方式

栏    目:Python代码

下一篇:解决tensorflow测试模型时NotFoundError错误的问题

本文标题:python的列表生成式,生成器和generator对象你了解吗

本文地址:http://www.codeinn.net/misctech/218370.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有