函数进阶之迭代器,递归

匿名 (未验证) 提交于 2019-12-03 00:03:02

可迭代的对象:具有iter方法的对象,可迭代对象不一定是迭代器对象

迭代器对象:具有iter和next方法的对象,迭代器对象一定是可迭代对象,迭代器对象加上iter方法还是迭代器本身

for 循环原理

for i in lt:

  1. 把lt变成迭代器对象

  2. 然后迭代使用next方法获取每一个元素

  3. 捕捉异常中断while循环

print(1) if i > 10 else print(2)

{k:v for k,v in dic.items()}

(i for i in rang(10)) #不去使用next取值,是没有值的

自定制的迭代器

def func():

yield:

1.展厅函数,遇到下一个yield继续运行函数代码

2.具有返回值

3.让函数()变成生成器对象

return:

1.终止函数

2.返回值

没有名字的函数 lambda参数:代码块

一般不单独使用,与max/min/map/filter/sorted联用

函数调用函数本身,但是必须得有结束条件

内置函数的直接用的,属于Python解释器的

数据类型的内置函数只有数据类型本身才能使用

enumerate()

流水线

优点:思路清晰

缺点:可扩展性差;功能与功能直接不独立;调试麻烦

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!