记录一下iter()的用法

一、iter() 函数。

iter() 函数生成迭代器

1、在Python里iterable被认为是一类对象,这类对象能够一次返回它的一个成员(也就是元素)。抽象一点就是适合迭代的对象。

2、最白话的就是一个数组、字符串、列表都是iterable的.

3、如果一个对象是interable的,表示它可以被遍历。实际上,任何具有__iter__()或__getitem__()方法的对象,Python就认为它是一个iterable。

4、Python里有大量内置的iterable类型,如: list,str,tuple,dict,file,xrange等。使用内置的iter()函数来生成,

所以iterable意思为迭代,可以理解为连续的一组数据,可以遍历的数据,包含内置的string、list、dict、tuple、set()


作者:Babyzpj
链接:https://www.jianshu.com/p/6b7806c4f54a
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1、最基本的list_interator示例如下:

a = [3,4,5,6,7]
b = iter(a)
print(b)
for i in b:
    print(i)

输出的结果为:

2、dict_keyiterator同理:

a = {"cat":3,"dog":4}
b = iter(a)
print(b)
for i in b:
    print(i)
    print(a[i])

输出的结果为: 

二、next()函数

next() 返回迭代器的下一个项目。

next() 函数要和生成迭代器的 iter() 函数一起使用。

1、按如下调用,依次返回迭代器中的元素

a = {"cat":3,"dog":4}
b = iter(a)
print(next(b))
print(next(b))

2、若超出迭代器长度则会报出异常

a = {"cat":3,"dog":4}
b = iter(a)
print(next(b))
print(next(b))
print(next(b))

 3、第二个参数设置后,在超出长度时返回默认值

a = {"cat":3,"dog":4}
b = iter(a)
print(next(b,0))
print(next(b,0))
print(next(b,0))

三、使用时遇到的问题

我发现当需要多次使用同一个迭代器时,会出现问题

a = [3,4,5,6,7]
b = iter(a)
for i in b:
    print(i)
    if i==5:
        break
print("-----------------------")
for i in b:
    print(i)

这里我想循环b两次,但是结果和想象的不同

查阅了相关介绍,这是因为在迭代时,每取一个值就会调用上面介绍的__next__方法指向下一个元素。所以我理解的迭代器是一次性的。

  • 51
    点赞
  • 222
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值