<p>我建议使用Python的<a href="https://docs.python.org/3/library/fractions.html" rel="nofollow noreferrer">fractions</a>模块进行概率计算</p>
<p>因此,您的解决方案可以是:</p>
<pre><code>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)]
</code></pre>
<p>我相信在概率上,你必须进行数学运算,所以你可以做如下操作:</p>
<pre><code>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)]
</code></pre>
<p>或者假设您实际执行<code>1 - Probability</code>运算并乘以3进行匹配,那么它仍然可以使用分数运算,正如您期望使用概率函数执行的那样:</p>
<pre><code>In [17]: new_probs = [3*prob if prob==i else 1-prob for prob in probs]
In [18]: print(new_probs)
[Fraction(8, 9), Fraction(8, 9), Fraction(8, 9), Fraction(2, 3), Fraction(8, 9), Fraction(8, 9), Fraction(8, 9), Fraction(8, 9), Fraction(8, 9)]
</code></pre>