如何使用 lambda 实现计数器?

2023-11-26

我可以使用一个计数器来实现lambdapython 中的函数或一些更Pythonic 的表达式?

这是我的代码:

counter = 0     
if 0 < arrival_time:
   counter += 1
else:
   pass

这是我尝试过的:

count_late = lambda x, arrival_time: x+=1 if 0 < arrival_time else pass
counter_late(counter, arrival_time)

The error: enter image description here

我缺少什么或者如何改进此代码?


Both x+=1 and pass是陈述,但是lambda是一个表达式,并且不能将语句放入表达式中。

但那很好。

lambda and def两者都只是以相同的方式创建一个函数,但是lambda是比较有限的。

如果需要在表达式中间创建函数,则必须使用lambda- 但这里的情况并非如此,因为您创建它只是为了在赋值语句中使用。

如果函数没有好的名称,您可能需要使用lambda,但这里的情况也不是这样,因为您立即给它起了一个名字。

有些人(主要是那些花了太多时间使用 Lisp 或 ML 系列函数语言的人)也喜欢使用lambda为了表明他们正在编写一个“纯函数”,它没有副作用,并且返回一个仅取决于其参数值的值。但这里的情况也不是这样。 (如果你把它改成lambda x, arrival_time: x+1 if 0 < arrival_time else x,这将是纯函数的一个很好的例子。然后你可以用例如x = count_late(x).)

所以,完全没有理由使用lambda首先在这里。只需使用def:

def count_late(x, arrival_time):
    if 0 < arrival_time:
        x += 1

然而,值得注意的是,虽然这现在是有效的语法,但它不会有任何好处。

数字是不可变的;没有办法改变号码2进入数字3,因为那会破坏所有的物理学。当你写的时候x += 1,这只是使局部变量x为号码命名3而不是号码的名称2。如果你用count_late(spam, 5)它不会改变什么spam意思是,就像你用count_late(2*3, 5)它不会改变什么2*3 means.

所以,您可能想要:

  • 使其成为一个纯函数returns 一个值(如上所述,这意味着你could use lambda,有些人会对此感到高兴,但我仍然肯定更喜欢def此处),或
  • 使其成为某个对象的方法,该对象具有self.x, or
  • Make x一个全球性的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 lambda 实现计数器? 的相关文章

随机推荐

  • 哪个查询更好、更高效 - mysql

    我遇到以不同的方式编写查询 如下所示Type I SELECT JS JobseekerID JS FirstName JS LastName JS Currency JS AccountRegDate JS LastUpdated JS
  • 使用 PHP 和 MySQL 显示日语字符的问题

    我正在使用 PHP 连接到 MySQL 数据库来创建 XML 文件 除了字符编码之外 一切正常 我需要日语和英语字符 所以显然我选择使用 UTF 8 唯一的问题是数据库中的日语字符无法正确显示 数据库和表的排序规则设置为 UTF8 gene
  • 在 Mac OS X 上的 64 位进程中,中等大小的内存分配怎么会失败?

    我正在构建一个相册布局应用程序 该应用程序经常将 JPEG 图像解压缩到内存中的位图缓冲区中 图像的大小限制为 100 兆像素 但通常不超过 15 兆像素 有时这些缓冲区的内存分配会失败 NSMutableData alloc initWi
  • 如何从c#发送邮件

    我有代码 System Web Mail MailMessage oMailMessage new MailMessage oMailMessage From strFromEmaild oMailMessage To strToEmail
  • 传单:添加指向标记的链接

    非常简单的问题 如何使 Leaflet 中的地图标记可点击并将用户路由到其他页面 每个标记都有自己的页面 我尝试了以下方法但没有成功 不知何故 所有标记都指向同一页面 即最后分配的 URI var markers coords 51 505
  • 在 Python 中加速矩阵向量乘法和求幂,可能通过调用 C/C++

    我目前正在研究一个机器学习项目 其中 给定一个数据矩阵Z和一个向量rho 我必须计算的值和斜率逻辑损失函数 at rho 计算涉及基本的矩阵向量乘法和 log exp 运算 并采用避免数值溢出的技巧 在本节中进行了描述 上一篇文章 我目前正
  • 如何分配或返回受联合约束的通用 T?

    换句话说 如何为联合类型集中的不同类型实现特定于类型的解决方案 鉴于以下代码 type FieldType interface string int type Field T FieldType struct name string def
  • 无需刷新页面即可更改 HTML 代码

    有没有可能how to change HTML jsp 页面without refreshing it 用例是用户向文本区域写入一些内容 然后点击某个按钮 然后我需要将一些对象 即图片 添加到页面中先前定义的位置 gt 我需要更改 HTML
  • Opencv虚拟相机旋转/平移以获得鸟瞰图

    我有一个校准过的相机 我确切地知道内部和外部数据 相机的高度也是已知的 现在我想虚拟地旋转相机以获得鸟瞰图 这样我就可以用三个旋转角度和平移来构建单应性矩阵 我知道 2 个点可以通过单应性从一张图像转换为另一张图像 x K R t n d
  • .Rprofile 未来源

    我试图在 Rprofile 脚本中为 blogdown 包设置一些全局选项 但它们没有被获取 Rprofile 脚本如下所示 options blogdown ext Rmd blogdown author Maryam Khezrzade
  • INSERT AFTER 或 UPDATE AFTER 触发器内的回滚是否会回滚整个事务

    INSERT AFTER 或 UPDATE AFTER 触发器内的回滚是否回滚整个事务或仅回滚作为触发器原因的当前行 这与 Commit 相同吗 我尝试通过当前使用 MSTDC 进行事务的项目代码进行检查 看起来好像整个事务已中止 如果触发
  • 语义网框架

    有哪些语义 Web 框架 每个框架有哪些优点 缺点 我已经广泛使用了Jena 我看过Sesame简要地 还有其他我应该考虑的吗 Redland是一个很好的RDF框架 就像Andreas说的 我主要使用它的 Python 绑定 并通过 Mac
  • Laravel 变形关系

    我有一个关于在 Laravel 中保存多态关系的问题 这是我想在 laravel 中创建的模型 商店有很多产品 产品可以是 商品 活动 或 服务 我有以下表格 shops id user id name events id public t
  • 为 https 运行 Tomcat7

    当我在tomcat 7 0的server xml中更改https以进行安全连接时
  • 在加载时设置 Google 图表宽度

    我有这个我的网站上的谷歌图表 目前这是一个散点图 但我想要所有类型图表的解决方案 例如 如果您使用 700 像素宽的窗口加载网站 则图表尺寸不会响应 图表太宽 下面是我正在使用的代码 HTML div div CSS chart div w
  • 有检查 WCF 服务是否在线的示例吗? [复制]

    这个问题在这里已经有答案了 我将有一个使用 WCF 服务代理的客户端应用程序 该客户端将是一个 Windows 窗体应用程序 对某个地址的 N 个端点执行 basicHttpBinding 我想要解决的问题是 当任何 Windows 窗体应
  • Laravel 5 中的自定义分页视图

    拉拉维尔 4 2可以选择指定自定义视图app config view php例如 Pagination View This view will be used to render the pagination link output and
  • 如何在jsp文件中打印java字符串[重复]

    这个问题在这里已经有答案了 我正在尝试通过 jsp 文件打印字符串变量 这是我的代码
  • OpenGL 上下文之间可以共享什么以及如何启用共享

    我正在制作一个 CAD 软件 它将为相似的视图创建不同的 OpenGL 上下文 如果它们没有显示相同的内容 我想在 OpenGL 上下文之间共享尽可能多的数据 尤其是 VBO 和着色器 我想知道what我可以分享和how我分享它们 在一个跨
  • 如何使用 lambda 实现计数器?

    我可以使用一个计数器来实现lambdapython 中的函数或一些更Pythonic 的表达式 这是我的代码 counter 0 if 0 lt arrival time counter 1 else pass 这是我尝试过的 count