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

Python列表推导式如何添加非文件数量统计功能?

实现方案

方案1:显式循环(推荐,可读性最高)

直接把列表推导式拆解为普通循环逻辑,原有teeth的生成结果完全不变:

import os

teeth = []
non_file_count = 0
for x in p:
    if os.path.isfile(x):
        teeth.append({"tooth_path": str(x)})
    else:
        non_file_count += 1

执行后non_file_count就是你需要的非文件路径数量,teeth的结果和原代码完全一致。

方案2:保留推导式写法(适合不想改动原有推导式结构的场景)

可以借助可变容器作为计数器,在推导式的条件判断中完成统计:

import os

non_file_count = [0]
teeth = [{"tooth_path": str(x)} for x in p if os.path.isfile(x) or (non_file_count.__setitem__(0, non_file_count[0]+1) and False)]
# 最终统计值取 non_file_count[0]

这个写法中or后面的逻辑只有在os.path.isfile(x)为False时才会执行,执行完计数后返回False,不会让非文件路径被加入teeth,完全保留原有推导式的输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:18:05