自动论文生成器 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从而让生成器发生改变。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/366482.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

025 SSM简单搭建

参考了同事的文档,自己也写一篇文档。 同时,补充了一下,程序是如何运行的。 一:SSM框架 1.说明 SSM(SpringSpringMVCMyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数…

让Vue也可以使用Redux

上周末看Vuex源码,突发灵感,为什么都是Vuex啊。 于是蛋疼一下午写了一个插件来帮助Vue可以使用Redux Gayhub Url Vue-with-Redux 这是一个用于帮助Vue使用Redux管理状态的插件。Redux是一个非常流行的状态管理工具。vue-with-redux为大家提供一个可以…

Apache Camel –从头开始开发应用程序(第2部分/第2部分)

这是本教程的第二部分,我们将使用Apache Camel创建发票处理应用程序。 如果您错过了它,一定要看一下第一部分 。 以前,我们已经定义了系统的功能要求,创建了网关,分离器,过滤器和基于内容的路由器组件。 让…

上升沿_PLC上升沿,下降沿的理解

有网友留言说:上升沿就是在信号从断开到接通的那一瞬间接通,下降沿就是在信号从接通到断开的那一瞬间接通。但是现在的问题它的实际用处是用在哪一些情况。我身边也有PLC可以做个什么实验来体验一下呢?虽然说LD X0 PLS M0与LDP X0 out Y0…

内存的页面置换算法

在进程运行过程中,若其所要访问的页面不在内存而需把它们调入内存,但内存中已无空闲空间时,为了保证该进程能正常运行,系统必须从内存中调出一页程序或数据到磁盘的对换区中。但应将哪个页面调出,需根据一定的算法来实…

A - 装箱问题

Problem Description 一个工厂生产的产品形状都是长方体,高度都是h,主要有1*1,2*2,3*3,4*4,5*5,6*6等6种。这些产品在邮寄时被包装在一个6*6*h的长方体包裹中。由于邮费很贵,工厂希望…

非阻塞式异步Java 8和Scala的Try / Success / Failure

受Heinz Kabutz最近的时事通讯以及我在最近的书中研究的Scala的期货的启发,我着手使用Java 8编写了一个示例,该示例如何将工作提交给执行服务并异步地响应其结果,并使用了回调。无需阻止任何线程等待执行服务的结果。 理论认为,调…

中找不到iedis_CAD图纸中缺少的字体实在找不到怎么办呢?

在使用浩辰CAD软件打开图纸文件的时候经常提示缺少字体这是什么原因呢?怎么解决这个问题呢?其实打开CAD图纸时提示缺少字体是比较常见的情况,但是很多常见的字体也提示缺失是为什么呢?因为这些字体很显然是被人改过名字了&#xf…

Xamarin Essentials教程使用指南针Compass

Xamarin Essentials教程使用指南针Compass指南针是一种确定地理方向的工具。在手机应用程序中,指南针通过手机的磁力计确定磁北极,提供手机方向信息。在Xamarin中,开发者可以使用Xamarin.Essentials中的静态类 Compass,获取方向信…

Java 8中的instanceof运算符和访客模式替换

我有一个梦想,不再需要操作员和垂头丧气的instanceof ,却没有访客模式的笨拙和冗长。 所以我想出了以下DSL语法: Object msg //...whenTypeOf(msg).is(Date.class). then(date -> println(date.getTime())).is(String.class). then(…

1023 Have Fun with Numbers

因为最多有20个字符&#xff0c;int和long long都不行&#xff0c;所以只能用字符串操作。水题~ #include<iostream> #include<algorithm> #include<string.h> #define maxn 25 using namespace std; typedef long long ll; char s1[maxn]; int s2[maxn]; in…

前端生态混乱,AMPMIP在努力做标准化工作

作者 | Brilliant Open Web团队breezet 移动时代的前端似乎越来越混乱了&#xff0c;各种技术方案层出不穷&#xff0c;令开发者们目不暇接&#xff0c;不知如何选择。然而&#xff0c;生态越是混乱&#xff0c;对标准的呼唤就越强&#xff0c;因为只有标准化才能使得整个生态…

python逆向什么意思_如何理解python逆向切片

str 0123456789(推荐教程&#xff1a;python基础教程)如上,我们有一个数值型字符串,接下来我们分别从正向和逆向两个维度截取数据。str[start:end:step]start表示起始下标end表示结束下标step表示步长下面这个图,表示了正向和逆向下标的值首先我们要说一下方向的事情&#xff…

调试工具gdb

1.1 gdb符号调试器简介 gdb是一个用来调试C和C程序的功能强大的调试器&#xff0c;它能在程序运行时观察程序的内部结构和内存的使用情况。 gdb主要提供以下几种功能&#xff1a; 监视程序中变量值的变化设置断点&#xff0c;使程序在指定的代码行上暂停执行&#xff0c;便于观…

Apache Camel –从头开始开发应用程序(第1部分/第2部分)

开始之前 前一段时间&#xff0c;我写了一篇关于Spring Integration的教程&#xff0c;以演示如何在受现实发票处理系统启发的示例应用程序中使用Spring Integration。 我对此非常满意&#xff0c;因此我决定向您展示如何使用Apache Camel&#xff08;Spring Integration的最大…

Bourbon: 让你的sass更简洁

Bourbon是什么 bourbon是一个轻量级的Sass mixin和函数库&#xff0c;可以帮助我们快速开发样式. 官方文档 以下用webpack3.10.0( vue)为示例简述Bourbon的使用 安装配置 npm install bourbon -S 把bourbon添加到node-sass的includePaths中// webpack.config.js module.expor…

nat的地址映射 华为_华为PAT端口地址映射配置详解(一)

众所周知&#xff0c;PAT,&#xff0c;Port Address Translation&#xff0c;即网络地址转换。PAT有以下作用&#xff1a;1.改变数据包的ip地址和端口号&#xff1b;2.能够大量节约公网IP地址。PAT的类型有以下&#xff1a;1.动态PAT&#xff0c;包括NAPT和Easy IP&#xff1b;…

删除maven仓库中的lastUpdate文件

windows下打开命令行 进入maven本地仓库目录中 dos命令中执行下方命令.即可完成批量删除 for /r %i in (*.lastUpdated) do del %i 转载于:https://www.cnblogs.com/zlsxddgj/p/9324077.html

HDUOJ 1428

漫步校园 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5161 Accepted Submission(s): 1610 Problem DescriptionLL最近沉迷于AC不能自拔&#xff0c;每天寝室、机房两点一线。由于长时间坐在电脑边&#xff…

niosii spi 外部_基于Nios_II的DMA传输总结

最近练了一段时间的DMA传输&#xff0c;现做如下的总结&#xff0c;分享自己获得心得以及遇到的一些问题。在系统运行时&#xff0c;当需要传输大量数据时&#xff0c;可以采用DMA的方式进行传输&#xff0c;以解脱出CPU来处理其他命令。Nios II中的DMA传输有以下三种形式&…