首页 >

python返回迭代器和返回列表有什么区别,python if else特殊用法

python eclipse 调试,python语音转换,python归并算法,python中基数型转换,python清楚,% sub python,ascii加密python,python扫拍,adb重启python,python int d,python if else特殊用法

python返回迭代器和返回列表有什么区别,python if else特殊用法

列表、元组、字典、字符串都是可迭代对象。

数字、布尔值都是不可迭代的。

下面分别来说说这两者的具体区别:

1、迭代器

迭代器对象要求支持迭代器协议的对象。在Python中,支持迭代器协议就是实现对象的__iter__()和next()方法。其中__iter__()方法返回迭代器对象本身;next()方法返回容器的下一个元素,在结尾时引发StopIteration异常。

下面用个简单的列表来说迭代器的用法:

看完上面代码,偶想很多人纳闷列表怎么可以有一个迭代器。由于面试题篇幅有限,大家如果想了解可迭代对象怎么可以获取迭代器呢?

2、生成器

生成器(generator)就是一个函数,它提供了一种实现迭代器协议的便捷方式。生成器与普通函数的区别在于它包含yield表达式,并且不需要定义__iter__()和__next__()。

生成器是一种惰性的序列,如果大家需要创建一个0~1000000000的序列,这样大的序列创建出来会占用比较多的内存,生成器就是为了解决这样的问题。

下面用个简单的例子来说生成器的用法:

如果对于有不认同的意见,大家可以在关注偶指出和补充,欢迎留言。


  • 暂无相关文章