自动论文生成器 python_Python生成器常见问题及解决方案
在Python中,生成器和函数很像,都是在运行的过程中才会去确定各种变量的值,所以在很多情况下,会导致各种各样的问题。
def generator_test1():
# 0...9 generator
x = (i for i in range(10))
# 5..9 generator
x_filter = filter(lambda y: y >= 5, x)
# first use the x
L = list(x)
print("L, x", L)
# then use x_filter
l = list(x_filter)
print("l, x_filter", l)
if __name__ == "__main__":
generator_test1()
输出结果为:
L, x [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
l, x_filter []
上述代码中,x_filter是基于生成器x构建的生成器,但是由于x在x_filter使用之前先被用掉了,所以在使用x_filter的时候,才去获取x的值,而此时x已经用完了,最终导致x_filter转化成的列表是空的。
def generator_test2():
x = (i for i in range(10))
for i in range(10):
x = (j + i for j in x)
L = list(x)
print("L, x", L)
if __name__ == "__main__":
generator_test2()
输出结果:
L, x [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
上述代码中,每次循环都基于原先的生成器构建一个新的生成器,由于并未使用,所以生成器x中的i并没有被赋值。在后面转化成列表的时候才去获取i的值,而此时由于i为9,所以所有的生成器x的i都为9,原始的x是0到9的生成器,接下来的10个生成器每个都在原始值上加9,导致每个值都增大了90。下面是此例的一个变体:
def generator_test3():
x = (i for i in range(10))
for i in range(10):
x = (j + i for j in x)
i = 20
L = list(x)
print("L, x", L)
if __name__ == "__main__":
generator_test3()
输出结果:
L, x [200, 201, 202, 203, 204, 205, 206, 207, 208, 209]
上述代码表明,可以临时改变i从而让生成器发生改变。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
自动论文生成器 python_Python生成器常见问题及解决方案相关推荐
- 自动论文生成器 python_python生成器
python生成器 python高级特性 首先, 所有的生成器都是迭代器, 因为生成器完全实现了迭代器的接口. 在python中, 有两种不同的方式提供生成器: 1. 生成器表达式 2. 生成器函数 ...
- 为什么焊锡老是粘在烙铁头上_自动焊锡机常见问题及解决方案「由力自动化」...
随着科技的不断进步,一些行业中机器替代人工是避不可挡的一种发展趋势,自动焊锡机因为所能使用的行业广泛相信很多的朋友都有所了解,那么自动焊锡机器人使用时常见问题有哪些呢,该如何解决呢?下面小编来简单的讲 ...
- python小说自动生成器_python- generator生成器
什么是生成器? 通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的,而且创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后 ...
- python生成器函数_【python】生成器和生成器函数
1.生成器函数: 普通函数: def func(): print("周杰伦") return "昆凌" func() #执行func()函数,"周杰伦 ...
- XHTML CSS 常见问题和解决方案
作为前端开发人员,在日常的页面制作时,不可避免的会碰上这样那样的问题,这时就需要寻找这些 XHTML及CSS常见问题的解决方案.我根据自己的经验和心得挑选和整理了一些XHTML常见问题和CSS常见问题 ...
- python生成器next_Python生成器生成next,python,yieldnext
在实践keras网络模型的时候,发现keras fit_generator与flow_from_directory函数均有关于生成器的频繁使用:因此在本文中对其进行总结. Python 之所以要提供这 ...
- 森锐读卡器连接不上_蓝牙接收器配对不成功的常见问题和解决方案
蓝牙接收器的出现让很多老式音响设备具备了蓝牙功能,我们在使用手机连接蓝牙适配器的同时,可能会遇到配对不成功的情况,特别是iPhone用户,取消配对后就一直连接不上,什么原因呢?今天工程师就来给大家罗列 ...
- 网络新系统客户端常见问题及解决方案
网络新系统客户端常见问题及解决方案 "客户端提示"问题原因以及解决办法 [1]"认证请求被拒绝" 1.用户异常下线,系统中残留有用户记录.上班时间打电话:中心 ...
- 收藏:安卓投屏大师TC Display直播常见问题详细解决方案
安卓投屏大师TC Display(也叫TC DS)是一款可以把手机屏幕投影到电脑上的软件,主要用于直播投屏.教学/会议投影,并满足用户的的日常投影需求.可以把手机屏幕和声音同时传输到电脑上.因为安卓投 ...
最新文章
- 电脑怎么分屏2个显示器_程序员一台电脑装2个显示屏?因为专业
- 网站内容页面如何优化才利于排名提升?
- tcp/ip 协议栈Linux内核源码分析15 udp套接字接收流程二
- win10 远程桌面无法连接报错
- web图片铺满网页_web单页面实现多个echarts图表铺满整个div(柱状图,折线图,饼形图……)...
- Asp.net MVC Filter监控页面性能和运行时间
- Contact Manager Web API 示例[4] 异常处理(Exception Handling)
- 深度学习之 epoch batch iteration
- 中国大陆物联网驶入快车道 台商抢上车
- 管脚自动分配_lattice器件管脚评估与功耗评估
- Python开发【模块】:Urllib(二)
- layer - 简单好用的Web弹出层组件使用详解1(安装配置、消息提示框)
- LNMP生产环境部署
- 【Java学习笔记】38.Java 发送邮件
- 18周过后~(学期总结)
- python作业:有一个学生成绩表,包括学号、姓名、高数、英语,计算机。 录入若干个学生学号、姓名、高数、英语,计算机5项数据。 将学生成绩表数据写入文件,文件名为“学生成绩表.txt
- 李云大连理工计算机系2015级,大连理工大学计算机科学与技术学院介绍
- Python基于逻辑回归的糖尿病视网膜病变检测(数据集messidor_features.arff)
- 开源安全的危机在于太相信 GitHub?——专访Apache之父OpenSSF基金会总经理Brain Behlendorf
- pwm一个时间单位_PTO PWM
热门文章
- 你应当如何学习C++(以及编程)(rev#1)
- 用GDAL/OGR去读shapefile
- 设置vs2008代码区的背景色
- 如何取消 登录_LSAT | 退考、缺考、取消成绩,各自的区别和流程是怎样的?
- STC用PCA测量脉宽_教你测量玉手镯圈号及如何轻松快速摘戴玉手镯?
- matlab指定间隔符,在matlab中为.dat文件指定小数分隔符[复制]
- 少儿编程150讲轻松学Scratch(十一)-用Scratch巧解数学题——判定质数
- 怎样恢复oracle函数,Oracle闪回恢复误删除的表、存储过程、包、函数...
- mysql字符乱码百度_如何解决MySQL字符集乱码问题
- React 解决鼠标移入子元素触发父元素的mouseout事件