如何计算一组元组中每个元组的乘积

时间:2019-01-06 17:26:12

标签: python python-3.x tuples

  

编写一个名为minProd的Python函数,该函数将a   整数元组的集合,计算中的值的乘积   每个元组,并返回最小的此类乘积。 (请注意,   元组可能包含负数,因此最小乘积可能是   小于0。)如果任何元组为空,则其乘积应为   视为1;如果集合为空,则应返回值None。 [   元组中值的乘积是通过将所有   他们在一起,例如元组中数字的乘积   (3,7,2,3)是3x7x2x3,其值为126。]

3 个答案:

答案 0 :(得分:1)

以下是一些答案:

import numpy as np
def minProd(tupleSet):
    return (
        min(map(lambda x: np.prod(x) if len(x) > 0 else 1, tupleSet)) 
        if len(tupleSet) > 0 
        else None
    )

答案 1 :(得分:1)

不使用folder\ name

代码

numpy

输出

enter image description here

如果您使用的是from functools import reduce from operator import mul def minProd(l): if l: return min((reduce(mul, e, 1) for e in l)) print(minProd([(3,4), ()])) print(minProd([(1,2,3,4,455), (-40696, 986845)])) print(minProd([])) ,则可以执行以下操作:

numpy

其中def minProd(l): if l: return np.min(np.prod(l, axis=-1)) 是输入(您要处理的一组列表)

答案 2 :(得分:1)

让我们研究问题的分解,并将其简化为标准的python库。

我们有元组的迭代,我们需要找到最小的乘积。

  1. 从元组的迭代开始,创建产品的迭代
  2. 找到可迭代的最小值

第二个是简单的部分–使用min

让我们分解第一部分:

  1. 我们迭代,每个元素都是元组
  2. 遍历元素并应用一些函数来转换元组 通过将所有元素相乘得到单个值
  3. 写入或查找包含整数的元组并返回乘积的函数

每个步骤都很容易找到解决方案。

可以使用reduce + mul完成来自iterable的乘法元素。 reduce开箱即用地支持“初始化程序”,因此满足了“空元组应结果为1”的要求。