从字符串中提取数字
如从"i13love14you520"中提取出来 13,14,520,然后相加求和
方法1:
s = "i13love14you520"
new_str = "" #创建一个空字符串
for ch in s:
if ch.isdigit(): #字符串中的方法,可以直接判断ch是否是数字
new_str += ch
else:
new_str += " "
sub_list = new_str.split() #对新的字符串切片
num_list = list(map(int, sub_list)) #map方法,使列表中的元素按照指定方式转变
res =sum(num_list)
print(res)
方法2:
s = "i13love14you520"
new_str = "" #创建一个空字符串
for ch in s:
if ch.isdigit(): #字符串中的方法,可以直接判断ch是否是数字
new_str += ch
else:
new_str += " "
sub_list = new_str.split()
print(sub_list)
ex_str = "+".join(sub_list) #使用join()方法拼接字符串
print(eval(ex_str))
方法3:利用正则表达式,导入模块re
import re
re_obj = re.compile(r"\d+") #创建正则表达式对象
res_list = re_obj.findall(s) #利用findall将找的的符合要求的放入列表中
num_list = list(map(int, res_list)) #map方法,使列表中的元素按照指定方式转变
print(sum(num_list))