我正在使用Python进行一些计算。在一个步骤中,将有一个看起来像
的数组[1.23e-21, 2.32e-14, 8.87e-12, .....]
我只想在e..
之前获取该部分,即我想获得数组
[1.23, 2.32, 8.87,.....]
有没有办法做到这一点?
答案 0 :(得分:4)
可能有很多解决方案之一:
from math import floor, log10
x = [1.23e-21, 2.32e-14, 8.87e-12, 1.51, 1.214e10]
res = [t/10**floor(log10(abs(t))) if t!= 0 else 0 for t in x]
答案 1 :(得分:2)
您可以将条目转换为字符串并将其拆分为e
。将它与列表理解相结合,你得到:
numbers = [1.23e-21, 2.32e-14, 8.87e-12]
result = [float(str(i).split('e')[0]) for i in numbers]
如果你的所有数字都有两个小数位,你可以使用切片运算符来表示字符串和列表理解:
result = [float(str(i)[:4]) for i in numbers]