Python中计算含连写数字的字符串内数字之和的方法
Python提取字符串中数字求和的通用方法
对于你遇到的字符串中数字与字母拼接的情况,用split()方法确实无法直接提取数字,推荐使用正则表达式来实现通用的数字求和逻辑——不管数字是单独存在还是和字母连在一起都能处理。
实现思路
- 使用正则表达式匹配字符串中所有连续的数字序列(
\d+表示匹配1个或多个数字) - 将匹配到的字符串形式的数字转换为整数
- 对所有整数求和
代码示例
import re def sum_numbers_in_string(s): # 提取所有数字序列 numbers = re.findall(r'\d+', s) # 转换为整数并求和 return sum(int(num) for num in numbers) # 测试String1 String1 = 'Deepak25 is awesome5' print(sum_numbers_in_string(String1)) # 输出30 # 测试String2 String2 = 'I am 25 years and 10 months old' print(sum_numbers_in_string(String2)) # 输出35
为什么split()处理不了String1?
split()默认按空格分割字符串,String1分割后会得到['Deepak25', 'is', 'awesome5'],其中数字和字母连在一起,无法直接分离出数字;而正则表达式\d+可以直接定位所有数字片段,不管它和什么字符相邻。
内容的提问来源于stack exchange,提问作者Deepak Reddy
相关产品推荐
相关产品推荐

