今天来比较下 Python 中循环语句的性能,参赛选手为 while
for
生成器
内置函数
列表解析
1 | #!/usr/bin/env python |
我们以性能好坏来区分,得到的结论
1 | map > 列表解析 > 生成器 > for > while |
map
是内置函数,底层由 C 来编写,最快是毫无疑问的。而 while
是纯 Python 实现的,所以性能最差。
列表解析比生成器要快一些,这里多少有些存疑,因为我们想要返回列表,所以其实 map
和生成器都是在负重前行,我们修改下测试方式。
1 | #!/usr/bin/env python |
好了,这次我们不再强制转换 list,而仅仅只是返回一个可迭代的对象,发现 map
依然最快,生成器稍慢,而列表解析竟然慢了近百倍。
这次我们可以下个结论,处理循环时,我们已经尽可能的使用内置方法,然后根据业务需求来选择使用列表解析和生成器,实在不行了使用 for
循环,而 while
则是尽量不去使用的。
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章