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

        

  • 相关阅读:
    TX1/TX2 Qt安装与配置
    Gsteramer 环境配置
    NVIDIA Jetson TX2刷机
    TX2之多线程读取视频及深度学习推理
    搭建USB摄像头转RTSP服务器的多种方法
    TX2 五种功耗模式
    NVIDIA TX1/TX2 对比
    tf.reduce_mean
    关闭tensorflow运行时的警告信息
    sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10269956.html
Copyright © 2011-2022 走看看