我有一些问题要将数字列表向上和向下舍入到最接近的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.我该怎么做?
答案 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]
>>>