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

作者:我叫RT 时间:2022-05-15 15:10:04 

列表生成式

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

例如:

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

列表还支持 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]

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

当然,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

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

列表表达式初始化 dict 或 set

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

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

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

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

generator对象

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

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

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

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

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

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

生成generator对象

主要有两种方法:

  • 第一种使用 () 包裹列表生成式

  • 第二种,使用 yield 标记

示例:演示yield

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

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

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

来源:https://blog.csdn.net/weixin_43919932/article/details/123469942

标签:python,列表生成式,生成器,generator
0
投稿

猜你喜欢

  • OpenCV图像识别之姿态估计Pose Estimation学习

    2023-08-10 14:25:28
  • SQL语句的执行原理分析

    2024-01-15 03:17:59
  • Python如何生成树形图案

    2022-11-17 03:39:58
  • WEB页面工具语言XML支持的工具之运用

    2008-05-29 10:55:00
  • Python 程序员必须掌握的日志记录

    2021-11-05 06:17:20
  • 解决Python3中二叉树前序遍历的迭代问题

    2022-04-11 09:05:24
  • python实现大量图片重命名

    2023-12-26 07:20:56
  • Python 类属性与实例属性,类对象与实例对象用法分析

    2023-03-12 01:43:03
  • win10下oracle 11g安装图文教程

    2024-01-25 06:18:17
  • SQL触发器定义与使用

    2024-01-28 09:21:27
  • 详解如何使用Pyecharts制作Map3D

    2023-06-06 21:31:58
  • js实现上下左右弹框划出效果

    2024-05-08 09:32:31
  • Python数据分析之NumPy常用函数使用详解

    2021-09-29 06:17:33
  • 使用coverage统计python web项目代码覆盖率的方法详解

    2023-05-23 18:24:35
  • MySQL8重置root账户密码图文教程超详细讲解

    2024-01-25 17:40:55
  • 关于python3安装pip及requests库的导入问题

    2021-10-06 11:23:26
  • python 判断字符串中是否含有汉字或非汉字的实例

    2022-07-01 11:25:59
  • 为什么str(float)在Python 3中比Python 2返回更多的数字

    2022-11-09 22:55:56
  • Python threading Local()函数用法案例详解

    2021-11-27 21:57:02
  • Python redis操作实例分析【连接、管道、发布和订阅等】

    2022-07-18 17:56:40
  • asp之家 网络编程 m.aspxhome.com