如何在Python中将变量从文本"1m"转换为"1000000

2 投票
4 回答
3800 浏览
提问于 2025-04-15 20:27

我有一些变量,它们的值像是 1.7m、1.8k 和 1.2b,我该如何把它们转换成真正的数字呢?比如说:

1.7m = 1700000
1.8k = 1800
1.2b = 1200000000

4 个回答

1

你可能会对一些单位库感兴趣,比如 quantitiesunum

11

我会定义一个字典:

tens = dict(k=10e3, m=10e6, b=10e9)

然后

x='1.7m'
factor, exp = x[0:-1], x[-1].lower()
ans = int(float(factor) * tens[exp])
0

这里有一个使用 re 的例子:

input = '17k, 14.05m, 1.235b'

multipliers = { 'k': 1e3,
                'm': 1e6,
                'b': 1e9,
              }

pattern = r'([0-9.]+)([bkm])'

for number, suffix in re.findall(pattern, input):
    number = float(number)
    print number * multipliers[suffix]

撰写回答