减少功能

时间:2020-07-12 05:54:16

标签: function reduce

给出一个有理数列表,找到它们的乘积。

概念 reduce()函数从左到右连续在对象列表上累加两个参数的函数,以将其减小为一个值。假设您有一个列表,说[1,2,3],则必须找到它的总和。

reduce(lambda x,y:x + y,[1,2,3]) 6 您还可以定义一个初始值。如果指定,该函数将假定初始值为给定值,然后减小。等效于在列表的开头添加初始值。例如:

reduce(lambda x,y:x + y,[1,2,3],-3) 3

从分数导入gcd reduce(gcd,[2,4,8],3) 1个 输入格式

第一行包含,有理数的数量。 接下来的行各包含两个整数,即列表中有理数的numerator()和denominator()。

约束

输出格式

仅以最简单的形式打印包含列表中数字乘积的分子和分母的一行,即分子和分母除。外没有其他共同的因数。

样本输入0

3 1 2 3 4 10 6 样本输出0

5 8

1 个答案:

答案 0 :(得分:0)

    from fractions import Fraction
from functools import reduce

def product(fracs):
    t =reduce(lambda x,y:Fraction(x.numerator*y.numerator,x.denominator*y.denominator),fracs)
    return t.numerator, t.denominator

if __name__ == '__main__':
    fracs = []
    for _ in range(int(input())):
        fracs.append(Fraction(*map(int, input().split())))
    result = product(fracs)
    print(*result)