在 Python算法教程(Magnus Lie Hetland) 中提到了几个Python特性。
01列表的插入
列表的插入和增添在执行效率上有着天地之差。
列表的增添: x.append():效率很高
列表的插入:x.insert(0,i) :效率低。
使用下面的程序进行测试:
begintime = time.time()
x = []
for i in range(10**5):
# x.append(i)
x.insert(0,i)
endtime = time.time()
printf(endtime - begintime)
- append(): t=0.016000986099243164s
- insert(0,x): t=2.864163875579834s
之间相差倍数:
α = t 2 t 1 = 179 \alpha = {{t_2 } \over {t_1 }} = 179 α=t1t2=179
02 FOR循环的else语句
对于for循环,如果出现了break,那么在for后面else不会被执行。
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST3.PY -- by Dr. ZhuoQing 2020-08-07
#
# Note:
#============================================================
from headm import *
x = 0
for i in range(10):
if x > i: break
x += 1
printff(i, x)
else:
printf("Normal End")
#------------------------------------------------------------
# END OF FILE : TEST3.PY
#============================================================
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10
Normal End
03 WHILE的else语句
else在WHILE中的作用和FOR是一样的。如果出现break,那么不执行while后面的else的语句。如果是while条件不满足调出,则执行else的语句。
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST3.PY -- by Dr. ZhuoQing 2020-08-07
#
# Note:
#============================================================
from headm import *
x = 0
while x < 10:
x += 1
printf(x)
if x > 3: break
else: printf("Normal end.")
#------------------------------------------------------------
# END OF FILE : TEST3.PY
#============================================================