迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

解决 Python中的 Reduce Is Not Defined 问题

作者:迹忆客 最近更新:2023/07/04 浏览次数:

有时,我们经常会遇到 Not Defined 错误消息,更广泛地说,是 NameError。 这些错误消息是典型的,如果您对 Python 代码中的命名内容有简单的了解,那么这些错误消息很容易解决。

NameError 和 Not Defined 错误源于不存在的变量、绑定、函数或库。 对于这种情况,您的代码中不存在reduce 函数。

本文将讨论如何解决 Python 代码中的“reduce 未定义”错误。


python 中使用functools解决NameError: name 'reduce' is not Defined

reduce() 函数有助于对列表中的每个元素使用 lambda 函数来计算列表中的单个值。 reduce() 函数通过从数组中获取当前元素并将其与当前值组合或比较来构建一个值,直到它遍历列表中的所有元素。

在 Python 3 之前,reduce() 函数作为内置函数运行; 因此,下面的代码片段可以用来总结列表中的所有元素。

anon = lambda x,y: x+y
sum = reduce(anon, [1,2,3,4])
print(sum)

但是,如果运行上面的代码,会出现以下错误:

Traceback (most recent call last):
  File "c:\Users\akinl\Documents\HTML\python\txt.py", line 2, in <module>
    l = reduce(anon, [1,2,3,4])
NameError: name 'reduce' is not defined

这是因为,reduce() 不再是内置函数,而是名为 functools 的内置库中的函数,该库包含高阶函数和对可调用对象的操作。 由于reduce() 是一个高阶函数,因此存在是有意义的。

reduce() 是一个高阶函数,因为它以另一个函数作为参数。 现在要使用 reduce() ,我们需要导入functools:

import functools
anon = lambda x,y: x+y
sum = functools.reduce(anon, [1,2,3,4])
print(sum)

代码的输出:

10

我们可以在代码中更轻松地使用 from 关键字来导入reduce:

from functools import reduce
anon = lambda x,y: x+y
sum = reduce(anon, [1,2,3,4])
print(sum)

代码的输出:

10

我们的代码中不再有“reduce is not Defined”错误,并且现在可以了解当我们看到此类错误时要查找的内容。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中错误 CSV.Error: Line Contains Null Byte

发布时间:2023/07/04 浏览次数:111 分类:Python

在 Python 中创建 CSV 文件 Python 中的 _csv.Error: line contains NULL byte 错误 假设您在尝试读取 CSV 文件时收到 _csv.Error: line contains NULL byte,很可能是因为文件中存在一个或多个 NULL 字节。

Python 中错误 AttributeError: Module Urllib Has No Attribute Request

发布时间:2023/07/04 浏览次数:106 分类:Python

Python 将缓存导入,因为您正在使用导入的模块供其自身使用,使其成为对象的一部分。Python 中 AttributeError:module 'urllib' has no attribute 'request' 当您尝试通过导入 URL 库打开 URL 链接时,此错误是

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便