首页 > 解决方案 > 如何返回仅包含小数点后第二位的 python 列表?

问题描述

我有以下值列表:

      value_list=[2.5655665, 3.151498745, 3.1, 0.9999999999]

我需要更新这个列表,只保留小数点后第二位。我希望结果是:

      print(value_list)

      [2.56, 3.15, 3.1, 0.99]

我尝试使用传递参数 2 的 round() 方法只保留小数点后第二位。如下:

     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)

这样它可以工作,但它返回一个数组,我需要返回类型为列表。如何返回仅包含小数点后第二位的列表?

标签: pythonlistnumpy

解决方案


您可以使用 map 并应用您认为合适的任何功能:

value_list=[2.5655665, 3.151498745, 3.1, 0.9999999999]
value_rounded = list(map(lambda x: float(format(x, '.2f')), value_list))
value_truncated = list(map(lambda x: float(str(x)[:str(x).index('.')+3]), value_list))
print(value_rounded)
print(value_truncated)

两种情况的输出:

[2.57, 3.15, 3.1, 1.0]
[2.56, 3.15, 3.1, 0.99]

推荐阅读