迭代列表不要For循环,这是Python列表推导式最基本的概念
机器之心编译参与思倘若你仍旧在运用For循环对列表进行迭代, 那么你得去了解一下列表推导式, 瞧瞧它的基本概念究竟都是些什么。由列表解析式也就是列表推导式构成的, 是在其中极为强大且优雅的办法, 它能够依据现有的列表去开展一些操作, 进而迅速创建新的列表, 在我们头一回瞧见列表推导式之际,也许会觉得此种方法十分洋气, 所以撰写列表推导式是极为畅快的一桩事情。刚开始接触之际的状况下, 列表推导式或许显得较为繁杂, 然而深入了解以后便会发觉它实在颇为好用。就如同上面所呈现的那样, 列表推导式不但具备极强的可读性, 其所需的代码量为最少的那个, 它的执行速度也是最为快捷的那个。关于列表推导式, 我们能够从列表里挑选特定的元素, 并且进行某些操作以及做出一些判断, 借此创建全新的列表。需要留意的是, 我们甚至能够运用, 或者说NumPy Array去实施列表推导操作。接下来让我们详细瞧瞧列表推导究竟是什么吧什么是列表推导式要是我们存有一个列表, 且期望从中抽取元素, 那么最为标准的办法是运用循环, 然而我们也能够径直借助列表推导式, 它仅需一行代码便可搞定全部操作。当然, 抽取列表元素存在一个前提, 即我们得明白列表是一种可迭代对象, 它准许逐个去读取各异的元素。先想象, 要是动物园里头存在着好多不一样的动物, 而且每年每一只动物都得定期去做体检, 那么动物园就成了列表。接着我们能够遍历整个动物园, 然后依次去抽取动物, 抽取出来的动物不做进一步的予以处理, 而是直接放置到体检列表里头去。像接下来所展示的就是一般循环的做法:# our “”, “”, “”, “”, “猫”, “猫”, “猫”, “猫”, “猫”, “猫”, “猫”, “”, “”, “”, “”, “”, “”, “”, “狗”, “狗”, “”, “”, “”, “”, “”, “”。你的内容似乎存在一些混乱和不清晰的字符, 不太能完全理解其确切含义, 所以难以按照要求准确改写。请你检查并清晰准确地提供相关内容。前述代码极为简易, 仅借助一个for循环即可达成, 其语义同样极易领会。依如下方式, 我们能够运用列表推导式对这一循环予以重新编写:for in因借助列表推导式, 我们把代码量从三行削减至一行是这样达成的。要是对两者予以对比 , 我们能够发觉它们实际上是相同的 , 大致都是创建、遍历以及接收这三部分。图1标准循环与列表推导的对比。条件语句似这般看上去, 列表推导式好像也没什么特别了不起之处, 然而可别忘了, 它还能够针对元素开展更进一步的操作, 就像是加上一个条件语句那般。在标准的列表循环里, 我们的条件语句如下进行展示将会添加到for循环之中。对于在之中: 如果不等于狗并且不等于猫:(.)。就列表推导式而言, 我们能够把条件增添至其中, 借由 更长一些的单个行代码达成整个流程。上述的代码块能够以等价的方式加以表示:针对“in”, 如果不等于“Dog”, 同时也不等于“Cat” , 对于 “for” 的条件。相当关键的另外一点是, 列表推导式的速度极为迅速。如下两种情况都增添了条件语句, 然而列表推导式相较于一般的循环语句, 速度加快了51%。图2列表推导与标准循环二者速度的对比。最后, 要是你曾借助列表推导式去创建新的列表, 那你最优选择始终运用它, 鉴于我们不存在再采用标准循环的缘由。我们能够发觉, 只要弄清楚了基本概念, 那列表推导式运用起来还是极为简便的。原文链接