美文网首页
Python浅谈列表解析和生成器 2018-07-24

Python浅谈列表解析和生成器 2018-07-24

作者: 丶丶勿忘初心 | 来源:发表于2018-07-24 14:10 被阅读37次
  1. 利用for、range()生成一个列表
i = []
for x in range(10):
    if x % 2 == 0:
        i.append(x)
print(i)

[0, 2, 4, 6, 8]

  1. 列表解析(实则为生成列表的表达式)
[i for i in range(10) if i % 2 ==0]

[0, 2, 4, 6, 8]

可见输出结果是一样的

  • 缺点是运行一次就会生成整个列表,列表很大的话就会消耗大量的内存空间。
  • 对于复杂的循环,传统的语法更容易理解,如for循环嵌套。
  1. 生成器
(i for i in range(10) if i % 2 ==0)

<generator object <genexpr> at 0x0000017CA889A8E0>

返回一个生成器,而不是列表。
因此我们可以对生成器进行计算,从中取值。

for i in (i for i in range(10) if i % 2 ==0):
    print(i)

0
2
4
6
8

  • 如果创建一个含有大量元素的列表,那将会占用很大的空间,这时我们可以利用生成器边循环边计算,不用创建完整的列表,这样就会节省大量的空间。
  • python中,边循环边计算的机制就称为生成器。

相关文章

  • Python 各种推导式

    python 列表推导式 执行结果 生成器表达式 1 把列表解析的[]换成()得到的就是生成器表达式 2 列表解析...

  • Python浅谈列表解析和生成器 2018-07-24

    利用for、range()生成一个列表 [0, 2, 4, 6, 8] 列表解析(实则为生成列表的表达式) [0,...

  • python 生成器详述

    参考python核心变成第二版 列表解析 在介绍生成器表达式之前,先来介绍一下列表解析 列表解析(List com...

  • Python编程学习笔记1.1

    《Python编程》学习笔记1.1 本篇承接上文,介绍列表解析、生成器表达式和map的使用,这些都是python中...

  • Python 生成器和迭代器

    生成器和迭代器 生成器 Python 列表推导和生成器表达式 在上文中简单介绍了生成器的作用。在列表推导创建列表时...

  • python笔记

    Python format格式化输出 浅谈 Python 的 with 语句 Python中迭代原理生成器和迭代原...

  • 9.解析式与生成器

    目录1.列表解析2.生成器表达式3.集合解析式4.字典解析式 1. 列表解析介绍 1.1 列表解析介绍 语法: ...

  • python生成器的简介

    用过python的人都知道,在python中利用列表生成器能快速创建出一个列表。但是列表生成器也有它的局限性。其一...

  • Effective Python(9): 用生成器表达式来改写数

    一、生成器表达式产生背景 列表推导Effective Python(7): 用列表推导来取代map和filter ...

  • Python学习(2)

    本系列内容来源于 廖雪峰的Python教程 点击查看原文 迭代 列表生成式 生成器 列表生成器 生成器函数 高级函...

网友评论

      本文标题:Python浅谈列表解析和生成器 2018-07-24

      本文链接:https://www.haomeiwen.com/subject/gnyemftx.html