如何控制rf字符串python内的格式?



我想控制科学记数法中有效数字的数量。比如,我需要2.33e-7,而不是2.33333333333333333333e -07,在一个rf字符串内。

这是我的代码

import numpy as np
eta_arr=np.linspace(0.2,0.5,10)*1e-6
legendstr=[rf'$eta={x}$' for x in eta_arr ]
print(legendstr)

代码输出:

['$eta=2e-07$', '$eta=2.3333333333333333e-07$', '$eta=2.6666666666666667e-07$', '$eta=3.0000000000000004e-07$', '$eta=3.3333333333333335e-07$', '$eta=3.6666666666666667e-07$', '$eta=4e-07$', '$eta=4.3333333333333335e-07$', '$eta=4.6666666666666666e-07$', '$eta=5e-07$']

我尝试了不同的组合,如{0.2 2e x}, {x/0.2 2e}等,但没有工作。有什么建议吗?

:.3格式修饰符似乎做你想做的:

>>> a = 2.33333333333e-07
>>> rf'$eta={a:.3}'
'$eta=2.33e-07'