zoukankan      html  css  js  c++  java
  • Python 列表表达式与生成器表达式

    列表表达式:

    (1) 语法1:[表达式 for 变量 in 列表],表示把得到的每一个变量值都放到 for 前面的表达式中计算 ,然后生成一个列表
    (2) 语法2:[表达式 for 变量 in 列表 if 条件],如果加上 if 判断,则表示把每一个变量值进行判断,如果判断正确再交给表达式进行计算,然后生成一个列

    In [4]: [i*2 for i in range(10)]
    Out[4]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
    
    In [5]: [i*2 for i in range(10) if i == 4]
    Out[5]: [8]

    生成器表达式:

    (1) 生成器是一个特定的函数,允许返回一个中间值,然后挂起代码的执行,稍后再恢复执行
    (2) 列表表达式的结果会以列表的形式一次性返回所有的数据,如果数据量很大,就会很占内存,所以不适用于迭代大量的数据
    (3) 生成器表达式的结果则会返回一个生成器对象,只有当我们去调用这个对象的时候才会读取里面的值,因此生成器表达式是一个对内存使用友好的结构
    (4) 生成器表达式的语法跟列表表达式的语法是一样的,只是把中括号换成圆括号,如:(表达式 for 变量 in 列表 if 条件)

    In [7]: (i*2 for i in range(10))    # 可以看到返回的是一个生成器对象
    Out[7]: <generator object <genexpr> at 0x7fc951b52050>
    
    In [8]: for i in (i*2 for i in range(10)):    # 只有被调用的时候才会读取里面的值
       ...:     print(i),
       ...:     
    0 2 4 6 8 10 12 14 16 18

        

  • 相关阅读:
    期权波动率模型及交易策略分析
    k阶原点距和k阶中心距各是说明什么数字特征
    在Linux中监视IO性能
    NUMA微架构
    Web网站的几个QPS
    Elasticsearch与Solr 选型
    相关连接(后续更新)
    linux_基本命令使用(后续更新)
    centos7.5安装kafka(支持外部连接)
    centos7.5单机安装安装zookeeper
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10269956.html
Copyright © 2011-2022 走看看