如何在Python中将变量从文本"1m"转换为"1000000
我有一些变量,它们的值像是 1.7m、1.8k 和 1.2b,我该如何把它们转换成真正的数字呢?比如说:
1.7m = 1700000
1.8k = 1800
1.2b = 1200000000
4 个回答
1
你可能会对一些单位库感兴趣,比如 quantities
或 unum
。
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]