如何通过将其域更改为新的目标域来重新映射数字列表?

How can I remap list of numbers by changing its domain to a new target domain?

我有这些数字:

  1. 0.477486
  2. 0.627644
  3. 0.763021
  4. 0.857888
  5. 0.892062
  6. 0.857888
  7. 0.763021
  8. 0.627644
  9. 0.477486

    我想将它们重新映射到新的目标域,例如 0 到 10 而不是 0.477486 到 0.892062。

你可以使用这个方法:

>>> l = [0.477486, 0.627644, 0.763021, 0.857888, 0.892062,
         0.857888, 0.763021, 0.627644, 0.477486]
>>> print([(i - min(l)) * 10 / (max(l) - min(l)) for i in l])

这应该打印

[0.0, 3.6219655744664423, 6.887398209254755, 9.17568793176643, 10.0, 9.17568793176643, 6.887398209254755, 3.6219655744664423, 0.0]