Python 如何将数字四舍五入到最接近的1000?
我有一些问题需要将一个数字列表上下取整到最接近的1000 下面是我的代码:Python 如何将数字四舍五入到最接近的1000?,python,rounding,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
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。我该怎么做呢?可以取负数进行四舍五入,这会导致它在小数点的左边四舍五入。例如:
>>> round(15768, -3)
16000
>>> round(1218, -3)
1000
因此,简短的回答是:使用第二个参数
-3
调用round
,将其四舍五入到最接近的1000。列表理解是一个单行循环,允许您对列表项应用函数。(详情请参阅)
在本例中,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]
>>>
注意:我的示例行为是
round
的Python3行为;如果您使用的是Python 2,结果将是float
值,但是在int()
中包装将转换回int
。这是最好的答案通常最好解释一个解决方案,而不是仅仅发布一些匿名代码行。您可以阅读,虽然这段代码可以回答问题,但最好解释如何解决问题,并提供代码作为示例或参考。只有代码的答案可能会令人困惑,并且缺乏上下文。
>>> 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]
>>>