前言:在初学python的时候,相信大家都接触过一种在python中精炼语法的做法 , 官方称为:list comprehension( 列表推导 )或许没有印象,不过接下来这个例子,可以让大家立刻明白这是什么方法 .
在上例中,利用列表推导来实现平方值构建列表,对于简单的函数而言,用列表推导要比内建的函数map简单得多,如果你要用map函数,需要创建lambda函数,用来计算和描述列表 :
列表推导比上述例子要简单,不像map那样复杂,新的列表不会包含计算结果,一般的,我们只需要在循环后面添加条件表达式即可 :
对于上例也可以吧map函数和filter函数结合起来使用,但是代码晦涩难懂 :
在python中,字典也同样支持推导 :
列表推导的矩阵实现(二维数组) :
列表推导是支持多个if语句的,在同一级别的条件中,默认以and连接表达式,例如要从列表中过滤出大于5的偶数,下列方法是等效的 :
尽管这是一种优化代码的好方法,但是,在多人协作的工作中,如果使用了过于多的列表循环表达式的话,虽然使得空间节省,但是非常难懂 ,所以合理利用,加以节省空间,还需要多尝试才行 .
今天的文章就写到这,明天与大家交流交流用生成器表达式来改写数值过大的list推导以及为什么在工作中尽量用enumerate取代range的原因 .
刚创了个新QQ群:685012311欢迎大家进来交流,一起进步 !
每天不断的干货 , 助你成长 .
编辑于 21:36
领取专属 10元无门槛券
私享最新 技术干货