在实际编程中,我们经常需要处理包含数字和字符串的混合列表。本文将详细介绍如何使用Python从字符串列表中提取数字并计算它们的总和。
def sum_numbers_in_strings(str_list):
return sum(int(num) for num in str_list if num.isdigit())
# 示例
strings = ['1', 'a', '23', 'b', '45']
print(sum_numbers_in_strings(strings)) # 输出:69
import re
def sum_numbers_with_regex(str_list):
pattern = r'^\d+$'
return sum(int(num) for num in str_list if re.match(pattern, num))
# 示例
strings = ['100', 'xyz', '50', 'abc', '25']
print(sum_numbers_with_regex(strings)) # 输出:175
如果字符串中包含数字和非数字字符,可以使用以下方法提取数字:
def extract_and_sum_numbers(str_list):
total = 0
for s in str_list:
# 提取所有数字字符并组合
digits = ''.join(c for c in s if c.isdigit())
if digits: # 确保不是空字符串
total += int(digits)
return total
# 示例
strings = ['a1b2', '3c4d', 'e5f6g']
print(extract_and_sum_numbers(strings)) # 输出:21 (1+2+3+4+5+6)
本文介绍了三种在Python中从字符串列表中提取数字并求和方法,涵盖了不同场景下的需求。根据实际数据特点选择最适合的方法,可以大大提高代码的效率和可读性。