欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

很多人不知道为什么使用列表生成器?

最编程 2024-03-16 09:35:11
...

日常编码过程中,少不了for循环,如果你使用python,那么你一定想更pyhtonic一些,因此在一些情况下,使用列表生成式优化for循环,是我们常见的手段之一。作为一名pyhonic的忠实追随者,我们要知其然,更要知其所以然,所以回答为什么要使用列表生成式,将是本篇文章的主要内容,各位看官暂且留步,与我一道深入探寻pythonic吧~

让我们来看一个例子:

lst=[]
for i in range(100):
   lst.append(i)

这是一个正确的写法,但在python里不是一个足够好的写法,更好的写法如下所示:

[i for i in range(100)]

这种写法在python里这叫list comprehension,即列表生成式。对比我们可以看到,使用列表生成式,代码更加简洁,这是使用列表生成式的第一个好处。

也许你会觉得第一个理由虽然成立,但依然不足以说服你改变个人编码习惯,那么,且往下看~~

第一段代码执行过程简化如下:

graph LR
for循环 --> 寻找lst对象的append函数 --> 调用append函数

第二段代码执行过程简化如下:

graph LR
for循环 --> 调用内置list对象的append函数

这里影响性能的最大因素在于append函数,当执行第一段代码中的lst.append函数的时候,python没有办法直接判断你使用的就是list.append函数,因此需要先从lst对象中找到append函数,然后拿出来调用它。而当你使用list comprehension的时候,python就可以直接调用list.append函数。

因此,使用列表生成式,能够简化执行过程,减少代码运行时长,面对一定数量级的循环时,其性能优势将尤其明显。

综上所述,使用列表生成式,不仅可以简洁代码,而且可以提升代码性能。

推荐阅读