from fractions import Fraction
probs = ["1/9", "1/9", "1/9", "1/9", "1/9", "1/9", "1/9", "1/9", "1/9"]
# rather than integer convert it to Fraction, or simply use fractions only from beginning.
probs = [Fraction(i) for i in probs] # convert like this
# or use directly as below:
probs = [Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9)]
我相信在概率上,你必须进行数学运算,所以你可以做如下操作:
In [12]: print(probs)
[Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9), Fraction(1, 9)]
In [13]: i = 3
In [15]: new_probs = [Fraction(3, 9) if prob==i else Fraction(8, 9) for prob in probs]
In [16]: print(new_probs)
[Fraction(8, 9), Fraction(8, 9), Fraction(8, 9), Fraction(8, 9), Fraction(8, 9), Fraction(8, 9), Fraction(8, 9), Fraction(8, 9), Fraction(8, 9)]
我建议使用Python的fractions模块进行概率计算
因此,您的解决方案可以是:
我相信在概率上,你必须进行数学运算,所以你可以做如下操作:
或者假设您实际执行
1 - Probability
运算并乘以3进行匹配,那么它仍然可以使用分数运算,正如您期望使用概率函数执行的那样:您可以使用列表中的表达式来执行此操作
下面是一个列表,可以满足您的要求:
请注意,我将分数转换为字符串,否则它们将被打印为浮点数。如果希望它们成为浮动,可以执行以下操作:
另外,请注意,此列表理解实际上并不比正常的for循环快
相关问题 更多 >
编程相关推荐