找到 python 中分数列表的最小公分母

find least common denominator for list of fractions in python

我有一个分数列表

from fractions import Fraction

fractions_list=[Fraction(3,14),Fraction(1,7),Fraction(9,14)]

输出应该是一个列表,其中包含每个分数的分子,最后是所有分数的分母,并且是最简单的形式。对于上面的示例,结果 (3/14, 2/14, 9/14) 将表示如下

[3,2,9,14]

有没有优雅的解决方案?我能想到的只有很多中间列表来存储一些变量和可怕的比例。

import numpy as np

fractions_list=[Fraction(3,14),Fraction(1,7),Fraction(9,14)]

lcm = np.lcm.reduce([fr.denominator for fr in fractions_list])

vals = [int(fr.numerator * lcm / fr.denominator) for fr in fractions_list]
vals.append(lcm)