python中的所有for循环都可以转换为等效的列表理解吗?

python中的所有for循环都可以转换为等效的列表理解吗?,python,for-loop,list-comprehension,Python,For Loop,List Comprehension,列表理解在我看来更像蟒蛇。它也比for循环快 python中的所有for循环都可以转换为列表理解吗 我正在使用python 3.7 编辑:当for循环又长又复杂时,使用列表理解似乎不是一个好主意。它使代码的可读性大大降低。是的,有点像 您可以将嵌套for循环转换为列表理解,甚至可以使用变量赋值:= 的确,列表理解比循环快得多,但差别是如此之小,以至于不值得尝试将复杂的循环塞进列表理解中。列表理解并不意味着万事通。有很多情况,特别是当需要副作用时,它们在可读性方面非常不适合,而普通的for循环则更

列表理解在我看来更像蟒蛇。它也比for循环快

python中的所有for循环都可以转换为列表理解吗

我正在使用python 3.7

编辑:当for循环又长又复杂时,使用列表理解似乎不是一个好主意。它使代码的可读性大大降低。

是的,有点像

您可以将嵌套for循环转换为列表理解,甚至可以使用变量赋值:=


的确,列表理解比循环快得多,但差别是如此之小,以至于不值得尝试将复杂的循环塞进列表理解中。

列表理解并不意味着万事通。有很多情况,特别是当需要副作用时,它们在可读性方面非常不适合,而普通的for循环则更为惯用。cf列表理解不是为了速度,在速度更快的情况下,它只是为了可读性,用于表示生成列表的映射/过滤操作。试图从每个for循环中获得列表理解不是python式的。有一些for循环无法转换为列表理解。例如,如果它们包含某些保留关键字class、def、try,除了..@klauds。好吧,如果你能把它包装成一个函数,你就可以做到,但是没有这个,所有不是表达式的东西,所有的复合语句,等等,都不能进入列表理解,至少不能直接理解。我读了一些书。列表理解似乎适合于简单for循环。Listcomp对我来说可读性较差。嵌套for循环列表comp将是阅读的噩梦。是的,我不会尝试将复杂的for循环转换为列表理解。它会变得很糟糕。