2020-08-23 python复习-迭代、函数

迭代器

迭代器是python中访问集合中元素的一种方法,它记录的是可遍历对象的位置,从可遍历对象第一个位置开始,直至对象的全部元素取出。注意迭代器只能前进,不能后退,直至最后弹出’StopIteration’的异常。迭代器常用的两种方法是iter()和next()

可迭代对象创建迭代器

字符串、列表、元组等可迭代对象都可以创建迭代器。
一般用for语句访问迭代器的所有元素。
在这里插入图片描述
或者用while语句访问,但是要加上异常检测,并退出循环,否则容易造成死循环。
在这里插入图片描述

迭代器生成式。。。

列表生成式摇身一变,就转成迭代器了
在这里插入图片描述

迭代器的DIY式

同时也可以利用python中的模仿方法,自己定义一个迭代器
在这里插入图片描述
注意定义迭代器的时候,调用的是__iter__,而不是__init__,而且必须返回self。

生成器

在函数中加入yield,那么此时的函数就变成了一个生成器。yield相当于一个return返回一个值,并且记住这个返回的值,下次迭代时,代码从yield的下一条语句开始执行,直至再遇到yield为下次迭代准备,或者遇到return结束迭代。
在这里插入图片描述

可迭代对象、迭代器、生成器的区分

三者都可以使用for循环进行遍历,不同的是可迭代对象所占内存较大,而迭代器和生成器只是记住了生产序列的算法,运行一次,输出一个数值。
比如字符串是一个可迭代对象,例it = ‘abcd’,加上iter(it)就变为一个迭代器。
在这里插入图片描述

函数中的不定长参数

当输入的参数是一个星号或两个星号时,即*或**时,即认为是不定长参数,在函数中,当我们不确定输入参数的数量时会用到。不定长参数在调用函数时可传可不传。

输出对象是元组

当函数定义的参数前加一个星号时,在调入函数时,除了一般参数,其余的参数都会以元组的形式返回。
在这里插入图片描述

输出的对象是字典

当函数定义的参数前加两个星号时,在调入函数时,除了一般参数,其余的参数都会以字典的形式返回。所以注意了,传入的参数也必须指明对象,毕竟字典的元素是一键值对嘛。
在这里插入图片描述

匿名函数lambda

其实就是一个表达式
在这里插入图片描述
匿名函数,讲究的就是一个简洁,不再使用def语句这样标准的形式定义一个函数。lambda只是一个表达式,不是一个代码块,这也造成了匿名函数表达的局限。注意lambda传递的只是函数的名称,具体调用还得再次用括号,添加参数。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值