Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将数字四舍五入到最接近的1000?_Python_Rounding - Fatal编程技术网

Python 如何将数字四舍五入到最接近的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

我有一些问题需要将一个数字列表上下取整到最接近的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。我该怎么做呢?

可以取负数进行四舍五入,这会导致它在小数点的左边四舍五入。例如:

>>> 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]
>>>