美文网首页ITS·黑客
py高级特性及递归函数

py高级特性及递归函数

作者: 小灰灰233 | 来源:发表于2017-05-11 23:15 被阅读5次

    首先是上一章函数的最后一块——递归函数

    递归函数:函数在内部调用自身

    逻辑清晰

    注意:栈溢出

    计算机调用一次函数,就增加一次栈帧,函数返回,就减少一层。调用函数过多,便会导致栈溢出。

    解决方法:尾递归

    函数返回时,调用自身,而且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)

    相关文章

      网友评论

        本文标题:py高级特性及递归函数

        本文链接:https://www.haomeiwen.com/subject/ughitxtx.html