python迭代器是什么、有哪些方法_有没有一种方法可以记住python迭代器中的位置?...

当您使用一个对象进入for循环并返回迭代器时,__iter__方法被调用。我们通常不会保持一个指向迭代器的名称,但是如果这样做了,我们可以停止迭代,执行其他操作,然后继续迭代。在

获取迭代器对象的最佳方法是使用内置的iter函数:a_list = ['a', 'b', 'c', 'd']

iter_list = iter(a_list)

for val in iter_list:

print(val) # do_stuff(val)

if val == 'b': # some_condition!

break

print('taking a break') # do_stuff()

for val in iter_list:

print(val) # continue_doing_stuff(val)

显示:

^{pr2}$

iter(obj)只返回obj.__iter__()的结果,它应该是实现.__next__()方法的迭代器。在

每次迭代都会调用__next__方法,返回对象(在本例中是一个字符)

如果您想自己调用__next__方法,而不是让for循环调用它,那么应该使用内置的next函数:a_list = ['a', 'b', 'c', 'd']

iter_list = iter(a_list)

print(next(iter_list)) # do_stuff(val)

print(next(iter_list))

print('taking a break') # do_stuff()

print(next(iter_list)) # continue_doing_stuff(val)

print(next(iter_list))

印刷品:

^{pr2}$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值