减少功能如何工作?

2024-01-10

据我了解,reduce 函数需要一个列表l和一个函数f。然后,它调用该函数f列表的前两个元素,然后重复调用该函数f与下一个列表元素和上一个结果。

因此,我定义了以下函数:

以下函数计算阶乘。

def fact(n):
    if n == 0 or n == 1:
        return 1
    return fact(n-1) * n


def reduce_func(x,y):
    return fact(x) * fact(y)

lst = [1, 3, 1]
print reduce(reduce_func, lst)

现在,这不应该给我((1! * 3!) * 1!) = 6?但是,它却给出了720. Why 720?似乎采取阶乘6也。但是,我需要明白为什么。

有人可以解释为什么会发生这种情况以及解决方法吗?

我基本上想计算列表中所有条目的阶乘乘积。 备份计划是运行一个循环并计算它。但是,我更喜欢使用reduce。


其他答案都很棒。我将简单地添加一个我觉得很好理解的图示示例reduce():

>>> reduce(lambda x,y: x+y, [47,11,42,13])
113

将计算如下:

(Source http://www.python-course.eu/lambda.php) (mirror https://web.archive.org/web/20170506153354/http://www.python-course.eu/lambda.php)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

减少功能如何工作? 的相关文章

随机推荐

  • 再次重新处理/读取Kafka记录/消息 - Consumer Group Offset Reset的目的是什么?

    我的 kafka 主题总共有 10 条记录 消息 2 个分区 每个分区有 5 条消息 我的消费者组有 2 个消费者 每个消费者已经分别从其分配的分区读取了 5 条消息 现在 我想从开始 开始 偏移量 0 重新处理 读取我的主题中的消息 我停
  • 带注释的收藏袋

    我正在观看一个由 制作的精彩视频伯特 贝克威斯 http www infoq com presentations GORM Performance http www infoq com presentations GORM Performa
  • 无法检索 Eclipse 插件中选定的 java 文件名/路径

    我正在开发一个插件 需要 检索 java 文件的路径 文件名 我编写的代码成功检索了 xml 或清单文件的文件名 路径 但无法检索包中 Java 文件的路径 我使用的代码是 if IStructuredSelection 的选择实例 Obj
  • 如何在Vue JS中动态渲染组件?

    我正在制作一个表单生成器 它使用其中的组件作为输入字段 按钮等 我希望能够根据我传递给它的选项来生成表单 但我无法让它渲染组件 我尝试返回纯 HTML 但这不会渲染组件 我从 Home vue 模板中调用表单生成器 我希望表单具有如下所示的
  • 线程池并行处理消息,但保留对话中的顺序

    我需要并行处理消息 但保留具有相同会话 ID 的消息的处理顺序 Example 让我们像这样定义一个消息 class Message Message long id long conversationId String someData 假
  • iOS 7.1 删除超级视图崩溃

    我的应用程序没有发生任何崩溃 直到iOS 7 1出来 现在在任何removeFromSuperview方法 崩溃 例如 我有视图控制器 当我想删除视图控制器时 我删除它的所有子视图 然后从堆栈中删除 堆栈 我在其中存储视图控制器 用于加载新
  • 如何在 AngularJS 中交换 div 元素的顺序?

    如何使用 Angular 的数据绑定更改包含文本框和下拉列表的 div 元素的顺序 div 的顺序应相应更改用户登录意味着如果用户类型为 A 则 div A 应位于顶部 如果用户类型为 B 则 div B 应位于顶部 其他 div 元素将位
  • 无法使用 Firebase CLI 登录

    当我尝试使用 CLI 登录 Firebase 时遇到问题 我安装了firebase tools using npm g install firebase tools具有管理员权限 我执行的步骤是 从 Windows 10 Professio
  • 删除第一页的页眉和页脚

    class MyDocTemplate BaseDocTemplate def init self filename kw self allowSplitting 0 apply BaseDocTemplate init self file
  • 如何借助 FFMPEG 和 PHP 代码连接两个 mp4 视频? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有人可以帮助我使用 FFMPEG 的 php 代码来连接两个 mp4 视频并将连接的文件作为 mp4 存储在服务器中的任何文件夹中吗
  • jQuery 仅序列化 div 中的元素

    我想得到同样的效果jQuery serialize 但我只想返回给定的子元素div 结果示例 single Single2 multiple Multiple radio radio1 没问题 只需使用以下内容即可 这将与序列化表单完全相同
  • js中能获取之前的历史状态对象吗?

    当我点击后退或前进按钮并且 popstate 事件触发时 我可以获得前一个状态的状态对象吗 因为不是 e state 提供的状态对象 而是我刚刚后退 转发的状态对象 或者 我可以检测按下的是后退按钮还是前进按钮 我需要这个 因为我有多个子系
  • 匹配点集的算法

    我有两组点A and B 而点可以是 2D 或 3D 两套尺寸相同n 相当低 5 20 我想知道这些集合的一致性如何 也就是说 理想情况下 我会找到点之间的配对 使得所有欧几里得对距离的总和d A B 是最小的 所以 d A B sum i
  • PhoneGap FileReader/readAsDataURL 不触发回调

    我正在使用 PhoneGap Build 构建 iOS v7 1 应用程序并使用weinre http people apache org pmuellr weinre docs latest 进行调试 我正在使用媒体捕获插件和文件 API
  • 获取中间件中的路由定义

    有谁知道是否可以获取用于触发路线的路径 例如 假设我有这个 app get user id function req res 使用以下简单的中间件 function req res next req 我希望能够得到 user id在中间件中
  • Instagram Streaming API 的 Logstash 输入插件

    我想阅读 Instagram 上的活动 我想知道我是否可以使用 Logstash 来做到这一点 类似于使用 Twitter 输入插件从 Twitter 读取事件 但 Instagram 没有输入插件 还有其他方法可以使用 Logstash
  • Pygame 中自上而下的运动

    如果这个问题之前已经被问过 我很抱歉 但我到处都检查过 但找不到答案 如何在 pygame 中进行自上而下的移动 如果我只使用矩形 这会很容易 但我将使用单个字符精灵 例如 如果我按d为了让玩家向右走 它会向我显示他向右走的角色精灵并将角色
  • Android KitKat 中的 WebView 渲染问题

    我一直在开发一个具有 WebView 的应用程序 其中从资产加载静态页面 也使用 JavaScript 此 WebView 在 KitKat 中不起作用 它保持空白 我知道在 kitkat 的 WebView 中发生的渲染引擎 webkit
  • Azure 存储模拟器无法初始化,并显示“数据库‘AzureStorageEmulatorDb57’不存在”

    我在使用 Azure 存储模拟器时遇到问题 我尝试重新初始化数据库并收到以下错误 这是在安装 Visual Studio 2019 预览版之后发生的 但这可能只是巧合 我尝试了一个小时左右让它运行 然后放弃了 只是使用 保留我的文件 选项重
  • 减少功能如何工作?

    据我了解 reduce 函数需要一个列表l和一个函数f 然后 它调用该函数f列表的前两个元素 然后重复调用该函数f与下一个列表元素和上一个结果 因此 我定义了以下函数 以下函数计算阶乘 def fact n if n 0 or n 1 re