如何将数字舍入到最接近的1000?

时间:2017-09-29 03:24:52

标签: python rounding

我有一些问题要将数字列表向上和向下舍入到最接近的1000.

以下是我的代码:

rev_list = []

for i in range(12):
    rev = int(round(random.normalvariate(100000, 12000)))
    rev_list.append(rev)

print(rev_list)

输出结果为:

[97277, 96494, 104541, 132060, 98179, 87862, 84718, 95391, 94674, 89773, 92790, 86122]

我想将列表四舍五入到最近的1000.我该怎么做?

2 个答案:

答案 0 :(得分:19)

The round function可以将负数数字舍入到,这会使其舍入为小数的。例如:

>>> round(15768, -3)
16000
>>> round(1218, -3)
1000

所以简短的回答是:用round的第二个参数调用-3以舍入到最近的1000。

答案 1 :(得分:-1)

列表理解是一个单行循环,允许您将函数应用于列表项。 (有关更多信息,请阅读List Comprehensions

[x for x in rev_list]

在这种情况下,round(num,-3)是函数。

>>> round(1300,-3)
1000
>>>

答案

您可以通过此代码在列表上应用功能

rev_list=[round(x,-3) for x in rev_list]

示例:

>>> rev_list=[97277, 96494, 104541, 132060, 98179, 87862, 84718, 95391, 94674, 89773, 92790, 86122]
>>> rev_list=[round(x,-3) for x in rev_list]
>>> rev_list
[97000, 96000, 105000, 132000, 98000, 88000, 85000, 95000, 95000, 90000, 93000, 86000]
>>>