python使用list方法,将迭代器转换为列表后,再次循环打印迭代器输出为空

学习python内置函数的时候,发现一个问题,具体看下面这个代码:

res = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6, 7, 8])
print(res)   # <filter object at 0x000001FA7D27C208>
print(list(res))  # [2, 4, 6, 8]
for i in res:print(i)

使用匿名函数和filter()函数返回一个可迭代对象res,使用list()转成列表,再使用for循环遍历打印的时候,输出为空。

然后就去网上查了一下这个问题,发现有大佬记录,贴上原博文地址:https://w.cnblogs.com/xiaxiaoxu/p/11979179.html

总结

  • 迭代器在遍历取值时,每取一个值时,会调用内置的__next__方法指向下一个元素;
  • 使用list()转列表的时候,每一个元素都会调用迭代器的__next__()方法,转化完之后,__next__对象指向的就是空了;
  • 验证如下:
res = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6, 7, 8])
print(res)   # <filter object at 0x000001FA7D27C208>
print(list(res))  # [2, 4, 6, 8]
print(next(res))  # 报 StopIteration

python使用list方法,将迭代器转换为列表后,再次循环打印迭代器输出为空相关推荐

  1. Python(迭代、三元表达式、列表生成、生成器、迭代器)

    迭代 什么是迭代1 重复2 下次重复一定是基于上一次的结果而来 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration). 在 ...

  2. Python高级特性(切片,迭代,列表生成式,生成器,迭代器)

    掌握了Python的数据类型.语句和函数,基本上就可以编写出很多有用的程序了. 比如构造一个1, 3, 5, 7, ..., 99的列表,可以通过循环实现: L = [] n = 1 while n ...

  3. Python | 输入逗号分隔的元素,转换为列表并打印

    Input comma separated elements (integers), and converts it into list in Python. 输入逗号分隔的元素(整数),并将其转换为 ...

  4. Python 文件writelines() 方法和处理双层列表

    概述 writelines() 方法用于向文件中写入一序列的字符串. 这一序列字符串可以是由迭代对象产生的,如一个字符串列表. 换行需要制定换行符 \n. 语法 writelines() 方法语法如下 ...

  5. python generator object_python - 将生成器对象转换为列表以进行调试

    只需在发电机上拨打help p即可. lst = list(gen) lst 请注意,这会影响不会返回任何其他项目的生成器. 您也无法在IPython中直接调用help p,因为它与列出代码行的命令冲 ...

  6. python 三种方法实现删除一个列表里的重复元素

    一.python代码 test_list=['张三','李四','王五','张三','1','1','2','2','3','3']#法一:将列表转化为集合输出 test_set=set(test_l ...

  7. python从EXCEL中读取数据转换为列表

    首先,安装xlrd库 我之前安装了Anaconda,Anaconda自带xlrd库,在这里安装xlrd库这一步就省略了. 代码实现 下面是代码部分 import xlrd as xd data =xd ...

  8. python定义字符串1hdhdjdjd_python知识(list列表 for while循环 字典 字符串格式化)...

    1.快捷键:ctrl +? 注释:ctrl + d 复制一行 2.定义变量,不能以数字开头,不建议用中文,单引号都可以用.a = " let'go " ; a = ' " ...

  9. 八爪鱼爬取搜索引擎链接列表后如何循环点击每个列表里的特定元素呢?

    比如,我已经爬取了2019年所有的电影在百度中的搜索结果网页链接,现在想要循环打开每个链接里的百度百科链接,因为每个搜索页面打开它的排序都是不一样的,所有要在八爪鱼里怎么操作呢?要写X-path吗?求 ...

  10. Python 字典 values() 方法

    描述 Python 字典 values() 方法以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回字典中的所有值. 语法 values() 方法语法: D.values() 参数 无 ...

最新文章

  1. python分析nginx日志,每分钟nginx请求超过10ms的比例
  2. python怎么安装pip-安装 Python 模块
  3. Android学习笔记之SoftReference软引用,弱引用WeakReference
  4. [MEGA DEAL]完整的Java编程训练营(94%)
  5. 【LeetCode笔记】112 113. 路径总和 I II(Java、递归、DFS)
  6. public,protected,private
  7. WPF: 结束程序及关闭所有窗口
  8. Tricks(三十九)—— 使用 list comprehension 构造笛卡尔积
  9. dev gridcontrol 单元格内容复制_Excel复制还在用“Ctrl+C”?这5种高效的复制操作,堪称神来之笔...
  10. 为全面到来的数字化未来准备就绪 戴尔科技峰会赋能企业数字化发展新动力
  11. 了解HTML CSS选择器操作和特性
  12. 计算机课禁用监视器,win7系统防止别人偷窥电脑的操作方法
  13. 为什么html中图片显示不出来,网页图片显示不出来该怎么办?
  14. 用html把图片整体往左挪动,网页制作如何让图片从左到右循环移动
  15. 齐治 堡垒机 mysql_齐治堡垒机:让数据库运维审计无死角
  16. SitePoint播客#124:iPhone贪婪的声音
  17. Apple iPad
  18. 05 - 钓鱼网站的攻击与防御
  19. 小学生都能看懂,彻底解决环境搭建难题,一步一截图,再无VMware网络难题
  20. c语言如何计算中位数,如何计算中位数?

热门文章

  1. dell笔记本耳机怎么设置_戴尔笔记本电脑怎样设置耳机
  2. PHP爬虫微博某个话题的所有内容,GitHub - wansho/sina_weibo_crawl: 爬取新浪微博某一话题的数据,可以替代微博搜索接口...
  3. 基于大数据的一线城市住房租赁影响因素分析
  4. 异常来自HRESULT.0x80029C4A(TYPE_E_CANTLOADLIBRARY)的解决方法
  5. 计算机硬盘被制成动态硬盘,win10系统基本磁盘转换成动态磁盘的处理办法
  6. 黑马程序员培训没兄弟会高级
  7. android多个柱状图和折线图,RecyclerView 实现柱状图和折线图
  8. Java怎样在饼状图上标注数字_饼状图 - java_jun - 博客园
  9. 生而美者,若知之,若不知之,若闻之,若不闻之
  10. java出现圅_java获取汉字拼音首字母A