Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。
设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim Peters写的Python格言(称为The Zen of Python)里面表述为:There should be one-- and preferably only one --obvious way to do it. 这正好和perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。
如果你对内存地址的概念不是很理解的话,很容易就认为二者用法一样,应该没什么大的区别,其实二者区别还是比较明显的。
先来看“+”,这个字符表示为列表添加元素,严格意义来讲,"+"并不是真的为列表添加元素,而是创建一个新的列表,并且将原列表的元素和要添加的元素依次复制到新列表的内存空间里面。会改变列表内存中的地址。
append()方法,是在原有的列表里面添加元素,不会改变列表的内存中的首地址。
下面我将用代码来测试一下二者的添加速度:
1 import time
2
3 result = []
4 start = time.time()
5 for i in range(10000):
6 result = result + [i]
7 print(len(result), ",", time.time() - start)
8
9 result = []
10 start = time.time()
11 for i in range(10000):
12 result.append(i)
13 print(len(result), ",", time.time() - start)
运行结果:
从运行结果来看,使用append()的添加速度要快于"+"。