怎么提取字符串中的数字

   '西瓜有5个,杏有20个,梨有4个,香蕉有3个,猕猴桃有6个,桃子有21个,火龙果有7个'                

怎么将其中的数字提取并求和。求大佬指点

#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: Roc-xb
"""
import re

s = '西瓜有5个,杏有20个,梨有4个,香蕉有3个,猕猴桃有6个,桃子有21个,火龙果有7个'
sum = 0
res = re.findall("\d+", s)
for i in res:
    sum += int(i)
print(res)
print("sum=", sum)

img

time_ =    '西瓜有5个,杏有20个,梨有4个,香蕉有3个,猕猴桃有6个,桃子有21个,火龙果有7个'
time_filter = filter(str.isdigit, time_)
time_list = list(time_filter)       # ['2', '0', '1', '9', '0', '9', '0', '4', '1', '1', '0', '0']

s=0
for i in time_list:
    s+=int(i)
    print(i,end=" ")
print()
print(s)

img

import re
s =  '西瓜有5个,杏有20个,梨有4个,香蕉有3个,猕猴桃有6个,桃子有21个,火龙果有7个'
result = re.findall(r"\d+",s)
total = sum([int(i) for i in result])
print(total)
result = 0
i = 0
while i < len(s):
  tmp_num = 0
  while i < len(s) and s[i] >= '0' and s[i] <= '9':
    tmp_num = tmp_num*10 + int(s[i])
    i += 1
  i+= 1
  result += tmp_num
print(result)