python

1、迭代器和生成器的区别

答:迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束,迭代器只能往前不会后退。

可迭代对象有:列表、元组、字典、字符串、

整数和布尔型不是可迭代对象。

迭代器的作用:在迭代一个可迭代对象的过程种,实际上就是先获取该对象提供的一个迭代器,然后通过这个迭代器来依次获取对象中的每个数据。所以迭代器在底层实现了一个_iter_方法和next方法;所以通过iter方法获取迭代对象的迭代器,然后对获取到的迭代器通过不断使用next方法来获取下一条数据。当迭代器完最后一条数据之后,再次调用next方法就会抛出StopIteration的异常,来告诉我们所有数据迭代完成,不用再执行next方法。for循环也是个迭代器。

生成器:是一种特殊的迭代器。

创建的方法:

一、把一个列表生成式的[]改成(),就是生成器。

# 参考列表生成式:    li=[x*2forxinrange(6)]

# 把[] 改为() :就是一个简单的列表生成器:gen=(x*2forxinrange(6))   可以通过for循环遍历。

二、使用yield关键字的函数不再是函数,而是生成器,因此可以用yield创建生成器。

唤醒生成器的方法有:next方法和send方法

2、进程、线程和协程

进程:一个程序运行起来之后,代码和用到的资源,就是进程。进程式操作系统分配资源的基本单位。

使用multiprocessing模块导入process来创建进程实例,用start()方法启动进程,

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 包(lib)、模块(module) 在Python中,存在包和模块两个常见概念。 模块:编写Python代码的py...
    清清子衿木子水心阅读 9,214评论 0 27
  • python之进程、线程与协程 有这么个例子说他们的区别,帮助理解很有用。 有一个老板想开一个工厂生产手机。 他需...
    道无虚阅读 8,443评论 0 3
  • 本文翻译自Functional Programming Howto 本文将介绍Python中函数式编程的特性。在对...
    大蟒传奇阅读 7,512评论 4 14
  • 月色下温暖的手 牵引了谁的梦 二十年寒暑 仍在追求最初的萌动 索取、强求 是忘我 还是不够投入 这些年来 你付出了...
    行走的撒哈拉阅读 1,126评论 0 1
  • 爸妈总有很传统的思想,长大了,他们对我说,让我学会做饭,我个人的理解是做到很简单,不就是把米下锅,倒油炒菜,少许佐...
    苦笑嫣然阅读 3,060评论 0 1

友情链接更多精彩内容