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

Max*_*Max 3 python math fractions

我有一个分数列表

from fractions import Fraction

fractions_list=[Fraction(3,14),Fraction(1,7),Fraction(9,14)]
Run Code Online (Sandbox Code Playgroud)

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

[3,2,9,14]
Run Code Online (Sandbox Code Playgroud)

有没有一个优雅的解决方案?我能想到的所有内容都涉及许多中间列表来存储一些变量和可怕的比例。

Tom*_*Ron 5

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)
Run Code Online (Sandbox Code Playgroud)