美文网首页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高级特性及递归函数

    首先是上一章函数的最后一块——递归函数 递归函数:函数在内部调用自身 逻辑清晰 注意:栈溢出 计算机调用一次函数,...

  • py高级特性2.0

    一、列表生成式 py内置用来创建list的生成式 list(range(1,11)) [xx for x in r...

  • py_21 递归函数

    一 递归函数 定义:在调用一个函数的过程中又直接或间接地调用该函数本身 在调用f1的过程中,又调用f1,这就是直接...

  • 静态路由

    摘要 静态路由选择协议的高级特性包括:路由过滤、永久特性、浮动特性、递归路由、缺省路由。 协议比较 更新时遇到相同...

  • Python - 语法

    数据结构 函数 高级特性 函数式编程 数据结构

  • Numpy 学习

    创建指定数值的数组 高级通用函数的特性

  • C++基础(引用和函数的高级算法)

    C++基础 引用和函数的高级算法 课程目标 引用的优点和使用方法 引用函数,内联函数,默认参数函数,递归函数。 引...

  • Kotlin (二)

    尾递归 高级函数中的block 高阶函数之迭代 函数引用 闭包 1、函数的运行时环境:2、持有函数的运行状态;3、...

  • Android decoration

    小甜点,RecyclerView 之 ItemDecoration 讲解及高级特性实践

  • Day10递归函数、模块、迭代器、生成器

    一、递归函数 1、什么是递归函数 在函数中调用函数本身的函数就是递归函数。 2、递归的作用 循环能做的递归都能做 ...

网友评论

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

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