Skip to main content
 首页 » 编程设计

python之如何去除尾随零的整数

2025年05月04日19zhujiabin

给定一组整数(例如 {1000000, 20000000, 1234000, 1200000}),我想对它们应用一个函数,这样:

  1. 数字的大小尽可能降低
  2. 所有数字都是整数
  3. 它们的相对比例保持不变

换句话说,我想去掉尽可能多的零而不丢失除绝对大小以外的任何信息,所以集合将变为 {1000, 20000, 1234, 1200}

这个操作是否有一个术语,是否有一个高效的 Python 函数,或者我应该快速编写代码吗?

编辑:This solution不是重复的,因为它处理单数 - 在我的例子中,零的数量取决于特定的集合。

编辑 2:Green Cloak Guy 为我的确切要求提供了一个解决方案,而 Illmora 的解决方案做了我应该首先实际概念化的事情。

请您参考如下方法:

根据您的要求,您可以通过将每个输入数字除以所有输入数字的 GCD(最大公分母)来轻松完成您的要求。

#!/usr/bin/env python3 
 
import math 
from functools import reduce 
 
numbers = [1000000, 20000000, 1234000, 1200000] 
 
# Find the greatest common denominator 
gcd = reduce(lambda x,y: math.gcd(x,y), numbers) 
 
# Divide each number by the GCD 
minimum_numbers = map(lambda x: int(x/gcd), numbers) 
 
print(*minimum_numbers, sep=',') 

根据您输入的数字,它会产生以下结果:

500,10000,617,600 

由于 GCD 的属性,输出保证是尽可能低的整数,同时仍保持每个数字之间的相对比例。