如何将包含数字和字母的字符串更改为整数

How to change strings with digits and letters to integers

我从 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 这样的变体,所以我发现很难编写一个涵盖这一点的逻辑(对编码来说仍然是新的)。

有什么想法吗?

你可以试试这个:

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

试试这个:

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))