当前位置: 首页 > 面试题库 >

如何使用列表推导模拟sum()?

郎宏逸
2023-03-14
问题内容

是否可以使用列表理解来模拟类似sum()的东西?

例如-我需要计算列表中所有元素的乘积:

list = [1, 2, 3]
product = [magic_here for i in list]

#product is expected to be 6

相同的代码:

def product_of(input):
   result = 1
   for i in input:
      result *= i
   return result

问题答案:

没有;
列表理解会生成一个与其输入一样长的列表。您将需要Python的其他功能工具之一(reduce()在本例中为特定情况)将序列折叠为单个值。



 类似资料:
  • 我有一个调用Repository方法并返回列表的服务类。现在我想嘲笑它。我的单元测试场景如下: 向模拟存储库添加一些模拟对象 返回模拟对象列表的查询服务类 断言列表大小 我的存储库类: 我的服务等级: 我的对象类: 和我的测试课程: 但是由于我是Mockito的新手,这对我来说有点困难。我想知道如何从FoodService类中获取列表,并且它应该返回在测试类中制作的假对象。

  • 问题 你有一个对象数组,想将它们映射到另一个数组,类似于 Python 的列表推导。 解决方案 使用列表推导,但不要忘记还有 [mapping-arrays]( http://coffeescript-cookbook.github.io/chapters/arrays/mapping-arrays) 。 electric_mayhem = [ { name: "Doctor Teeth", in

  • 问题内容: 我开始认为这是不可能的,但是无论如何我都想问。 我想测试我的一个ES6模块以特定方式调用另一个ES6模块。有了茉莉花,这非常容易- 应用程式码: 和测试代码: 笑话相当于什么?我觉得这是一件很想做的简单的事,但是我一直在努力尝试弄清头发。 我最接近的是将s 替换为s,并将其移入测试/函数中。都不是我想做的事情。 为了获得加分,我希望在其中的功能为默认导出时使整个工作正常进行。但是,我知

  • 问题内容: 模块包括在其顶部。然而在试验条件下,我想嘲笑 的(模拟)和进口完全避免。 实际上,并不是故意在测试环境中安装的。 是被测单元。我必须导入所有功能。是我需要模拟的模块。但我怎么能嘲笑之内,并停止从导入实际,如果第一件事情确实是进口? (未安装B的原因是我使用pypy进行了快速测试,但不幸的是B尚未与pypy兼容。) 怎么办呢? 问题答案: 您可以在导入之前分配给以获取所需的内容: tes

  • 问题内容: 我的问题是关于Python List Comprehension的 可读性。当我遇到具有复杂/嵌套列表理解的代码时,我发现我不得不重新阅读它们几次才能理解其意图。 有一种直观的方法来朗读列表理解吗?似乎我应该从中间开始“读取”,然后读取 if 条件(如果有),最后读取 表达式 。 这是我如何大声阅读下面的代码行,以便理解它: “对于列表x中的每个元素,以及列表y中的每个元素, 如果两个

  • 列表推导式 宏 for 和 doseq 可以用来做list comprehension. 它们支持遍历多个集合 (最右边的最快) ,同时还可以做一些过滤用 :when 和 :while。 宏 for 只接受一个表达式 , 它返回一个懒惰集合作为结果. 宏 doseq 接受任意数量的表达式, 以有副作用的方式执行它们, 并且返回 nil . 下面的例子会打印一个矩阵里面 所有的元素出来。 它们会跳过