一个被高等数学折磨的不成人样的男大,来整会python换换脑子,顺便做点笔记。
我们上一个博客在输出列表是遇见过这样的问题

我们图省事,用了一个自认为简单的算法来输出一个二位的数组,但是在改变其中某项的数值时,遇到了上述问题。而使用列表推导式就可以轻松的解决上述问题。
列表推导式的基本形式是
表达式 for 变量 in 可迭代对象 if 条件
我们可以使用列表推导式对列表进行多种操作
一,将列表中的元素翻倍

传统的解决办法是通过for循环将列表中的每个元素乘以2,然后赋值给一个新的列表。
而通过使用列表推导式,我们只需要一行代码就可以解决问题。
我们看到这个列表推导式里面是可以加入if语句的,所以我们也可以用它来解决一些筛选列表中元素的问题。

这里复习一下之前学过的一个小点:new_lst.append(x),这串代码的作用是将元素添加到new_lst这个列表的后面。
在列表推导式中,作用的元素可以不止一个。

就像上面的图片中所显示的一样,我们也可以通过列表推导式对 一个坐标进行生成与输出。
当然带上条件的也是可以的

这里还有一个执行顺序的问题,我们来看下面这张图片

通过对表达式进行修改与变换,我们可以知道它是先执行for循环,然后执行if判断,最后执行表达式的。
在列表推导式中我们也可以通过使用嵌套,来简化传统方法中有好几个for的情况。

这里我们需要注意到一个细节,就是在传统代码中在外层的for循环,在列表推导式中是靠前的,而在内层的for循环是靠后的。
tips:如果变量是无关紧要的,或者是一个临时的变量,那么他的变量名是可以用下划线代替的。
通过上面的学习我们发现,列表推导式其中的for循环是可以嵌套很多的,所以在平时编写时,我们要注意嵌套的多少从而降低代码的维护成本以及运行成本。