如何利用python将一个list中的数字提取,然后求和?

# coding=UTF-8
import re

name_score_list = [u"唐僧","100",u"猪八戒","60",u"孙悟空","95",u"沙和尚","80"]

#1.将score_list列表转换为以“,”为分隔符的字符串
name_score_list_string = ",".join(name_score_list)

#2.使用re模块下的方法——findall对name_score_list_string进行正则匹配,提取出所有的数值型字符串
score_list = re.findall(r"\d+",name_score_list_string)

#3.将得到的score_list中的元素转换为int型
score_list_int = list(map(int,score_list))
print   score_list_int

#4.求和
sum = 0
for i   in  score_list_int:
    sum =   sum + i
print  sum

### 实现求和功能的方法 在 Python 中,可以通过多种方法实现求和功能。以下是几种常见的实现方式: #### 方法一:使用内置 `sum()` 函数 `sum()` 是 Python 的内置函数,用于计算可迭代对象(如列表、元组等)中所有元素的总和[^2]。 ```python numbers = [1, 2, 3, 4, 5] total_sum = sum(numbers) print(total_sum) # 输出结果为 15 ``` #### 方法二:手动遍历累加 如果不想使用内置函数,也可以通过循环手动实现求和逻辑[^4]。 ```python numbers = [1, 2, 3, 4, 5] total_sum = 0 for num in numbers: total_sum += num print(total_sum) # 输出结果为 15 ``` #### 方法三:利用列表推导式与生成器表达式 可以结合列表推导式或生成器表达式简化代码结构[^1]。 ```python # 使用列表推导式 numbers = [1, 2, 3, 4, 5] total_sum = sum([num for num in numbers]) print(total_sum) # 输出结果为 15 # 使用生成器表达式 total_sum = sum(num for num in numbers) print(total_sum) # 输出结果为 15 ``` #### 方法四:条件求和 当需要对满足特定条件的元素进行求和时,可以结合 `filter()` 或者 `lambda` 表达式完成此操作[^3]。 ```python numbers = [1, 2, 3, 4, 5, 6] condition_sum = sum(filter(lambda x: x % 2 == 0, numbers)) print(condition_sum) # 输出结果为 12 (2 + 4 + 6) # 另一种写法 condition_sum = sum(x for x in numbers if x % 2 == 0) print(condition_sum) # 输出结果同样为 12 ``` #### 方法五:自定义函数实现求和 为了增强代码的模块化程度,还可以封装成一个独立的函数。 ```python def custom_sum(sequence): result = 0 for item in sequence: result += item return result numbers = [1, 2, 3, 4, 5] print(custom_sum(numbers)) # 输出结果为 15 ``` --- ### 提取字符串中的数字求和 针对题目提到的需求——从字符串中提取数字求和,可以采用正则表达式配合上述求和方法来解决。 ```python import re string_data = "43... 3y2.f67se2.666." digits = re.findall(r'\d+', string_data) # 找到所有的连续数字部分 digit_list = list(map(int, digits)) # 转换为整型列表 result_sum = sum(digit_list) # 计算总和 print(result_sum) # 输出结果为 43 + 3 + 2 + 67 + 2 + 666 = 829 ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值