首先是上一章函数的最后一块——递归函数
递归函数:函数在内部调用自身
逻辑清晰
注意:栈溢出
计算机调用一次函数,就增加一次栈帧,函数返回,就减少一层。调用函数过多,便会导致栈溢出。
解决方法:尾递归
函数返回时,调用自身,而且return语句不能包含表达式
递归调用任意次,都只占用一个栈帧
python解释器并没有做优化,所以也会栈溢出
(python中代码越少越简单越好)
切片:取一个list或tuple的部分元素
L[0:3]
从0开始,到3结束,不包括3
L[:3]
第一个元素是0,可以省略
L[-2:-1]
取后两个元素
L[-2:0]
可以省略-1
L[:10:2]
前十个数,每两个取一个
L[::5]
所有数,每五个取一个
L[:]
原样复制
注:tuple切片后仍是tuple
字符串也可看作list,也可切片,切片后仍为字符串
迭代
通过for循环遍历list或tuple(dict,字符串)
for a in l:
print(a)
dict:
默认迭代key
for value in d.values() 迭代value
for k,v in d.items() 迭代key和value
判断是否为可迭代对象
通过collections模块的lterable
from collections import lterable
isinstance('abc',lterable)
true/false
同时迭代索引和元素本身
for i,value in enumerate(['a','b','c'])
print(i,value)
网友评论