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

如何将网站拦截器中含any()的列表推导式改写为基础Python语法

any()调用的非生成器写法改写方案

原代码的核心逻辑是:遍历内容的每一行,若当前行没有包含任意一个指定站点字符串,就将该行写入文件。原代码中any()的入参是生成器表达式,我们可以手动构建判断结果列表传入any(),完全不使用列表推导/生成器语法,符合学习需求。

正确改写代码

for line in content:
    # 逐个判断站点是否在当前行,收集布尔结果
    check_result = []
    for website in websites:
        check_result.append(website in line)
    if not any(check_result):
        file.write(line)

原有尝试代码的错误点

  • any(website) 用法不符合语法要求:any()需要传入可迭代对象,传入单个字符串时,只要字符串非空就会返回True,完全没有实现「判断站点是否存在于当前行」的逻辑
  • 嵌套循环内直接输出行,会导致同一行匹配到多个站点时重复输出,和目标逻辑不符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 10:18:01