• Python中的列表解析和生成器表达式


                      Python中的列表解析和生成器表达式

                                        作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

    一.列表解析案例

     1 #!/usr/bin/env python
     2 #_*_coding:utf-8_*_
     3 #@author :yinzhengjie
     4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
     5 #EMAIL:y1053419035@qq.com
     6 
     7 old ="hello"
     8 #传统方式解决转换字母的方法
     9 list_1 = []
    10 for i in old:
    11     res = i.upper()
    12     list_1.append(res)
    13 print(list_1)
    14 #列表解析方式
    15 res1 = [i.upper() for i in old]
    16 print(res1)
    17 
    18 list_2 = [10,20,30,40,50]
    19 #传统方式计算列表元素的二次方
    20 list_new = []
    21 for i in list_2:
    22     res2 = i ** 2
    23     list_new.append(res2)
    24 print(list_new)
    25 #列表解析方式
    26 res2 = [i**2 for i in  list_2 ]
    27 print(res2)
    28 
    29 list_3 = [1,31,45, 62,57,21]
    30 #传统方式将列表中大于30小于50的值取出来
    31 MaxNum = []
    32 for i in  list_3:
    33     if  i >30 and i<50:
    34         MaxNum.append(i)
    35 print(MaxNum)
    36 #列表解析方式
    37 res = [ i for i in list_3 if  i > 30 and i<50]
    38 print(res)

    二.生成器表达式

     1 #!/usr/bin/env python
     2 #_*_coding:utf-8_*_
     3 #@author :yinzhengjie
     4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
     5 #EMAIL:y1053419035@qq.com
     6 
     7 
     8 
     9 g = (i for i in range(1,999999999999999999999999999999999))
    10 print(g)
    11 print(g.__next__())         #注意,生成器的表达式的__next__()方法,也可以直接调用next函数哟!他们的效果是等效的。生成器很明显逼列表表达式要快!
    12 print(next(g))
    13 
    14 
    15 l = [i for i in range(1,9999999)]       #速度相比生成器而言,简直太慢了。
    16 print(l)

      补充:三元运算表达式可参考:http://www.cnblogs.com/yinzhengjie/p/8463774.html

  • 相关阅读:
    智能客户端请教
    C++位运算 (转并完善)
    Virtual PC 上网设置(宿主机为win7)
    Opencv2.0 lib和dll的编译获取过程 以及 vs2005,vs2008配置过程
    SQL Server 查询处理中的各个阶段(SQL执行顺序) 转
    Win32汇编项目总结——猎杀潜航
    sql server忘记sa密码的解决方法
    ODBC导出Excel遇到的表名错误问题解决(excel 2007)
    Opencv在MFC客户端的Picture控件上显示图片
    忘记深拷贝的后果
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/8476694.html
Copyright © 2020-2023  润新知