You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用列表推导式结合正则表达式提取文本文件数字并求和?

用列表推导式简化正则提取数字求和代码

填充完成的简化代码

import re
print( sum( [ int(num) for num in re.findall('[0-9]+', open(input('Enter a file Name: ')).read()) ] ) )

模板填充说明

把模板里的星号部分按以下内容替换:

  • ****** → int(num):将正则匹配到的字符串数字转换为整数
  • *** → for:列表推导式的循环关键字
  • ********** → re.findall:正则表达式的全匹配方法
  • ************************** → open(input('Enter a file Name: ')):打开用户输入的目标文件

带异常处理的两行版本

如果要保留原代码的文件不存在容错逻辑,可以写成:

import re
try: print(sum([int(n) for n in re.findall(r'\d+', open(input('Enter a file Name: ')).read())]))
except: print('Enter an existing file name')

核心思路

  1. 用open(...).read()一次性读取整个文件内容,无需逐行遍历
  2. re.findall(r'\d+', ...)会在整个文本中匹配所有连续数字字符串(\d+和[0-9]+功能等价)
  3. 列表推导式直接将所有匹配结果转为整数,再用sum()求和后打印

内容的提问来源于stack exchange,提问作者Heheboi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 14:01:27