【发布时间】:2021-08-06 13:00:14
【问题描述】:
我有以下值列表:
value_list=[2.5655665, 3.151498745, 3.1, 0.9999999999]
我需要更新这个列表,只保留小数点后第二位。我希望结果是:
print(value_list)
[2.56, 3.15, 3.1, 0.99]
我尝试使用round()方法传递参数2,只保留到小数点后第二位。如下:
value_list.round(2)
但是,出现错误信息:
AttributeError: 'list' object has no attribute 'round'
我尝试将 value_list 转换为数组类型,如下所示:
import numpy as np
value_list = np.array(value_list).round(2)
这种方式可以工作,但它返回一个数组,我需要返回类型为列表。如何返回只有小数点后第二位的列表?
【问题讨论】:
-
如果要将值保留为浮点数,则无法仅保留特定的小数位数。您可以 round 浮点值,但最接近的舍入浮点值可能仍包含比您喜欢的更多的小数位。您需要将它们转换为其他数据类型,例如字符串或
Decimal,以便对 exact 格式有发言权。 -
大多数数学和元素方面的函数必须一一应用于列表。我喜欢列表推导,但
map也可以。或者对于操作链,请考虑生成器和itertools。列表方法只有 11 个,所以不难记住。