如何将由数字和字母组成的字符串转换为整数



我从URL中抓取了以下文本作为字符串:

1.15M 
3.75M 
1.7M 
4.19M 
1.81M 
351.65K 

"M"代表百万和"k";为千

我正在努力获得正确的代码将其更改为完整的整数:

1150000
3750000
1700000
4190000
1810000
351650

对于所有的项目也可以有变化,如1.5K23.2K25.254M,所以我发现很难写一个逻辑,涵盖这(仍然是新的编码)。

任何想法?

试试这个:

n = "356.6M"
if "K" in n:
n2 = n.replace("K", "")
full_int = float(n2) * 1000
elif "M" in n:
n2 = n.replace("M", "")
full_int = float(n2) * 1000000
print(int(full_int))

您可以简单地尝试:

def convert_str_list(str_list, amnt_key):
value_list = [int(float(i[:-1]) * 10 ** amnt_key[i[-1]]) for i in str_list]
return value_list
def conver_str(amnt_str, amnt_key):
value_list = int(float(amnt_str[:-1]) * 10 ** amnt_key[amnt_str[-1]])
return value_list
str_list = ["1.15M", "3.75M", "1.7M", "4.19M", "1.81M", "351.65K", "150M", "360M", "2.6B", "3.7B"]
amnt_key = {'K': 3, 'M': 6, 'B': 9, 'T': 12}
print(convert_str_list(str_list=str_list, amnt_key=amnt_key))
for amnt_str in str_list:
print(conver_str(amnt_str=amnt_str, amnt_key=amnt_key))

输出:

[1150000, 3750000, 1700000, 4190000, 1810000, 351650, 150000000, 360000000, 2600000000, 3700000000]
1150000
3750000
1700000
4190000
1810000
351650
150000000
360000000
2600000000
3700000000

最新更新