我该如何改进这段代码?

ice*_*urn 4 python rounding

# max_list = [83, 1350, 1, 100]
for i in range(len(max_list)):
     new_value = 1
     while new_value < max_list[i]:
          new_value *= 10
     max_list = new_value
Run Code Online (Sandbox Code Playgroud)

我正在做的是将数字四舍五入到最接近的,嗯,零填充值?我不确定它会被称为什么.但基本上,我想83 - > 100,1 - > 1,1350 - > 10000,100 - > 100.我使用round()函数尝试,但不能让它做什么我想要的.

这样做但我认为它可以用更少的行编写.

dan*_*lei 11

我用数学方法做的:

from math import ceil, log10
int(pow(10, ceil(log10(abs(x or 0.1)))))
Run Code Online (Sandbox Code Playgroud)

  • +1,看着你,带来智能,其他人带来字符串处理:)而零是一个微不足道的特殊情况. (3认同)