Please enable Javascript to view the contents

 ·  ☕ 2 分钟 · 👀... 阅读

迭代器

1) 可迭代对象定义

在python中,但凡内部含有__iter__方法的对象,都是可迭代对象

  2) 查看对象内部方法

该对象内部含有什么方法除了看源码还有什么其他的解决方式么?当然有了, 可以通过dir() 去判断一个对象具有什么方法

1
2
s1 = 'alex'
print(dir(s1))

dir()会返回一个列表,这个列表中含有该对象的以字符串的形式所有方法名。这样我们就可以判断python中的一个对象是不是可迭代对象了:

1
2
3
4
s1 = 'alex'
i = 100
print('__iter__' in dir(i))  # False

print('__iter__' in dir(s1))  # True

 3)小结

从字面意思来说:可迭代对象就是一个可以重复取值的实实在在的东西。

从专业角度来说:但凡内部含有__iter__方法的对象,都是可迭代对象。

可迭代对象可以通过判断该对象是否有’iter’方法来判断。

可迭代对象的优点:

​ 可以直观的查看里面的数据。

可迭代对象的缺点:

​ \1. 占用内存。

​ \2. 可迭代对象不能迭代取值(除去索引,key以外)。

那么这个缺点有人就提出质疑了,即使抛去索引,key以外,这些我可以通过for循环进行取值呀!对,他们都可以通过for循环进行取值,其实for循环在底层做了一个小小的转化,就是先将可迭代对象转化成迭代器,然后在进行取值的。那么接下来,我们就看看迭代器是个什么鬼。

分享

幽梦
作者
幽梦
傻猪男孩

目录