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

Python扁平化代码生成generator对象报错,求问题排查与解决

问题分析与修复建议

核心问题:语法错误导致解析异常

你的扁平化代码存在括号不匹配的语法问题,这是引发错误提示的直接原因:

  • 列表推导式末尾多写了一个),需要删除
  • 外层包裹的(是多余的,无需添加

错误代码片段:

for line in ( [ line for line in content if re.match('(?!word)',line)) ]:

修正后的正确写法:

for line in [ line for line in content if re.match('(?!word)', line) ]:

关于错误提示的解释

因为括号不匹配,Python解析器无法正确识别列表推导式,误将部分代码解析为生成器表达式,所以出现了<generator object <genexpr> at 0x1068b8660>的错误提示,和“列表的列表”无关。

额外优化建议

  1. 无需提前调用file.readlines()读取全部内容,直接遍历文件对象更节省内存:
import re
with open('file.txt','r') as file:
    for line in [line for line in file if re.match(r'(?!word)', line)]:
        print(line, end='')  # 避免文件行自带换行导致重复空行
  1. 如果文件较大,推荐用生成器表达式替代列表推导式,无需一次性生成完整列表:
import re
with open('file.txt','r') as file:
    for line in (line for line in file if re.match(r'(?!word)', line)):
        print(line, end='')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 03:10:09