python有什么对象是可迭代的

 我来答
羿爱景仲寅
2020-01-29 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:28%
帮助的人:729万
展开全部
iamlaosong文
我们在用for
...
in
...语句循环时,in后面跟随的对象要求是可迭代对象,即可以直接作用于for循环的对象统称为可迭代对象(iterable),如list、tuple、dict、set、str等。
可迭代对象是实现了__iter__()方法的对象,而迭代器(iterator)则是实现了__iter__()和__next__()方法的对象,可以显示地获取下一个元素。这种可以被next调用并不断返回下一个值的对象称为迭代器。迭代器一定是可迭代对象,反过来则不一定成立。用iter()函数可以把list、dict、str等iterable变成iterator,例如:
bb=[x
for
x
in
range(10)]
cc=iter(bb)
cc.next()
循环变量的值其实可以看着是一次次用next取值的过程,每取一个值,做一次处理。list等对象用于循环实际上可以看着是用iter()方法产生一个迭代器,然后循环取值。
生成器(generator)就是一个能返回迭代器的函数,其实就是定义一个迭代算法,可以理解为一个特殊的迭代器。调用这个函数就得到一个迭代器,生成器中的yield相当于一个断点,执行到此返回一个值后暂停,从而实现next取值。
徐玉兰卿凰
2020-01-05 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.4万
采纳率:35%
帮助的人:1002万
展开全部
使用filter来实现,以python3为例,如果删除列表中的所有0,则可使用下面代码实现:a
=
[1,2,0,3,4,0,5,0,6]b
=
filter(lambda
x:
x
!=
0,
a)list(b)效果如下:注:如果使用python2则直接输出b即可,在python3中filter返回结果为可迭代的对象,需使用list转换成列表。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式