zoukankan      html  css  js  c++  java
  • Python 的列表解析和生成表达式的异同

    Python中的列表解析和生成表达式是非常好的特性,他们的形式相似,但是应用场景不太一样。

    相似点

    列表解析和生成表达式最大的相似点是使用形式:

    [expr for iter_var in iterable if cond_expr]        #列表解析
        (expr for iter_var in iterable if cond_expr)        #生成表达式

    从形式来看,他们唯一的不同之处是:列表解析使用的是中括号[],生成表达式使用的是圆括号()。

    不同点

    列表解析要完成所有迭代,最后生成一个列表。显然列表解析只适合在列表不大的情况,因为在大数据时这会耗费大量的内存和资源。

    生成表达式每次迭代时计算得到一个结果,然后生成器把这个结果产生出来,换句话说,生成表达式只处理一个迭代项,所以更节省内存,更少占用资源。另外有时候我们并不一定要得到一个列表,而只看重中间过程,生成表达式不一定要求生成一个结果。

  • 相关阅读:
    K-means聚类
    支持向量机_原理
    回归+内插
    ftp 服务器
    cmd 切换python版本
    cookie
    类加载器
    GC
    jvm结构
    mysql文件
  • 原文地址:https://www.cnblogs.com/jaletech/p/3557987.html
Copyright © 2011-2022 走看看