怎样Python遍历列表并修改元素的值?
Python是一门灵活的语言,这个问题,不同人的习惯写法可能不同。
但有时不同的写法效率可以相差两万倍,甚至更多,这点需要时刻警惕。
以修改一个比较大的列表(元素个数8万多个)里面元素的值为例,比较两种写法的效率。
|
代码在Python3.5.2下运行,在我的机器上运行结果如下:
|
二者相差2万多倍,这是天壤之别!
平时编程两种写法我都有写过,但并没有考虑效率问题,想当然地以为效率应该差不多,可能之前遍历的列表都是很小的,没能觉察到区别。在较大的数据面前便暴露无遗。实际上第一种是又丑又低效而且CPU占用极高,第二种是简洁又高效的写法。
体会:
在没把代码写对之前,千万别抱怨Python运行效率怎么这么慢,很可能是代码没写对、没了解这门语言。其它语言也同样如此。只有高手才有资格说哪个语言慢,哪个快,当然也会有使用场景的不同。PS,估计真正的高手们不会去随便评论一门语言。
开发中优先考虑编码速率而不是代码运行效率,这个思路并没错,人比CPU贵多了,也符合Python的特点,本就是为了简洁快速地编码而诞生。但这并不是能作为能想当然和懒惰的理由,要写出好代码,必须要有追求简洁又高效的心,多思考、多对比、多实践,才能进步。否则就是不思进取,是不实践的想当然,不可能成为优秀的coder。