在python中将字符串金额转换为整数金额

在python中将字符串金额转换为整数金额,python,arrays,regex,string,Python,Arrays,Regex,String,因此,我有以下字符串数组: amount = ['60 million', '1 million', '', '1.15 million', '1 million', '','2.48 million', '', '', '75 million', '1.25 million', '3 million', '67,000', '4 million', '', '63 million', '5.9 million', '170,000', '5 million', '22 million

因此,我有以下字符串数组:

amount = ['60 million', '1 million', '', '1.15 million', '1 million', 
'','2.48 million', '', '', '75 million', '1.25 million', '3 million',    
'67,000', '4 million', '', '63 million', '5.9 million', '170,000', '5
million', '22 million', '15.75 million', '36.5 million', '', '', '', '19.9 
million', '1.4 billion']
我想把它转换成整数,这样我就可以把它用于数据库了。。。我很难找出最好的方法…例如,我有数百万、数十亿和数千的混合数量。。。 因此,目标是获得以下整数数组:

amount = [60000000, 1000000, 1150000....etc] 

你可以定义一个单位字典

unit = { "million" = 1000000,
         "thousands" = 1000,
        ...
       } 
然后,您可以使用空格拆分金额列表,并根据拆分中的单位应用unit dict的乘法

ints = []
for x in amount:
    if 'million' in x:
        ints.append(int(float(x.split()[0]) * 10**6))
    elif ',' in x:
        ints.append(int(x.replace(',','')))
    else:
        ints.append(0)
输出:

[60000000, 1000000, 0, 1150000, 1000000, 0, 2480000, 0, 0, 75000000, 1250000, 3000000, 67000, 4000000, 0, 63000000, 5900000, 170000, 5000000, 22000000, 15750000, 36500000, 0, 0, 0, 19900000, 0]

看起来是个很棒的运动!你已经尝试了什么?嘿,为什么不开始发布你的代码(an)?欢迎来到SO。不幸的是,这不是一个讨论论坛或教程。请花点时间阅读该页面上的链接和其他链接。花些时间练习这些例子。这将让您了解Python提供的帮助您解决问题的工具。可能重复。顺便说一句:这些数组是用Python调用的。好的,我在考虑这些方面的内容…soOk,我在考虑这些方面的内容…因此,如果尝试像if string.contains(数百万)这样的内容,然后用“”替换数百万,并修剪所有空白,转换为整数,然后乘以1000000。也可以用10亿美元重复这一点。对于成千上万的人,我只需要去掉逗号。酷@Sammy7提示:
replace()
split()
float()
lower()
append()
。我试图理解这一点:re.match(r'[^]+',x.group())@Sammy7它意味着从字符串开始匹配(
re.match
)任何不带空格的字符
[^]
一次且无限次
+
。不要使用
re
(regex)它要慢得多。另外,我更新了我的帖子,使用了拆分和替换。非常感谢!!我刚开始学习正则表达式,它非常令人困惑。。。。