如何将包含数字和字母的字符串更改为整数
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.5K
或 23.2K
或 25.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))
我从 URL 中抓取了以下文本作为字符串:
1.15M
3.75M
1.7M
4.19M
1.81M
351.65K
“M”代表百万,“K”代表千
我正在努力获取将其更改为完整整数的正确代码:
1150000
3750000
1700000
4190000
1810000
351650
对于所有项目,也可以有像 1.5K
或 23.2K
或 25.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))