• python 列表推导式


        截止到目前为止,python基础内容已经学习了50%左右,在学习编程过程中,我们不仅要学习python语法,同时也需要学习如何把自己代码写的更美观,效率更高。

     

    一.什么是推导式

         推导式是从一个或者多个迭代器快速简洁地创建数据类型的一种方法,它将循环和条件判断结合,从而避免语法冗长的代码,提高代码运行效率。能熟练使用推导式也可以间接说明你已经超越了python初学者的水平。

    报错

     

    二.条件推导式

     

    1.语法

     

    2.实战练习

        假如有这样一个需要:判断一个数字是奇数还是偶数?

    输出结果:

        观察上面代码可以看出来,选手一(新手)一共占用了5行代码,而选手二(老司机)完成同样一个功能仅仅只需要两行,这就是性价比,往往这就是职场上鉴别工作能力/升职加薪的细节。

     

    三.列表推导式

        列表推导式是条件推导式和循环一起配合使用,并返回一个列表,并且整个表达式需要在[]内,因为返回值也是列表。

    1.语法

     

    '''
    语法一:
        exp1:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则不返回
        x:for循环中变量
        data:一个序列(比如:列表/元组/字符串等)
        condition:条件表达式
    '''
     
    [exp1 for x in data if condition]
     
    '''
    语法二:
        exp1:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则返回exp2
        condition:条件表达式
        exp2:在for循环中,如果x的值满足条件表达式condition(即条件表达式成立),返回exp1;条件表达式不成立则返回exp2
        x:for循环中变量
        data:个序列(比如:列表/元组/字符串等)
        
    '''
     
    [exp1 if condition else exp2 for x in data]

    2.实战练习

        需求一:获取0~20的所有偶数并且乘以10,并返回所有计算之后的结果。示例代码如下:(使用列表推导式语法一实现)

        输出结果:

     

        需求二:将0~20的偶数乘以10,奇数乘以100,并返回所有计算之后的结果。示例代码如下:(使用列表推导式语法二实现)

        输出结果:

     

    3.效率对比

        可能有童鞋纳闷,我明明for循环就能实现的功能,为毛要用这鸟玩意推导式?

        使用列表推导式的效率远远高于for循环,可能执行一句print(“helloworld”)对于cpu而已只需要0.0002秒,你可能感觉不到差距,如果需要输出一亿次helloworld呢?往往细节觉得成败!

        假如有一个需求:将0~10000000(一亿)以内的所有整数存到列表中,对比一下列表推导式和for循环耗时情况:

        输出结果:

        输出结果很明显,实现通用的功能,列表推导式的效率整整高出普通for循环一倍。

    崩溃

     

        最后温馨提醒:测试请把循环次数改小一点,毕竟刚开始不小心多加了几圈圈,电脑死机了!

     

    四.重点总结

        1.注意在列表推导式书写的时候,所有表达式都必须在[]内部,因为返回值是列表list

        2.列表推导式是python开发学习的知识点,多多联系,熟能生巧.

     

    猜你喜欢:

        1.python条件判断if/else

        2.python列表list

        3.for循环

        4.python字典推导式

     

        转载请注明:猿说Python » python列表推导式

     

    技术交流、商务合作请直接联系博主
    扫码或搜索:猿说python
    python教程公众号
    猿说python
    微信公众号 扫一扫关注
  • 相关阅读:
    汉字转拼音的一个类(C#)
    对象当前正在其他地方使用 异常
    关于IE无法打开站点XX已终止操作问题
    C语言有以下几种取整方法:
    做发型屋碰到的
    glTexImage2D()函数的使用注意点
    python爬取百度图片——翻页式网站爬取
    js 中文传值乱码记录
    Wp7 日志 工具
    基于 Android NDK 的学习之旅 Java 方法映射到C中的签名(附源码)
  • 原文地址:https://www.cnblogs.com/shuopython/p/11722471.html
Copyright © 2020-2023  润新知