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

如何从文件名列表中提取dog对应1、cat对应0的0/1分类标签?

优化实现方案

1. 最推荐的Pythonic写法:列表推导式

你的原有逻辑是正确的,用列表推导式可以简化代码,同时保留可读性,另外把无意义的变量名i改成语义化的filename,更便于后续维护:

a = ['dog7', 'cat5', 'dog77', 'dog44', 'cat5']
res = [1 if 'dog' in filename else 0 for filename in a]

运行后res的结果就是你需要的[1, 0, 1, 1, 0]。

2. 更严谨的校验版本

如果你的业务场景要求文件名只能包含dog或cat两类,建议增加异常校验,避免不合法的文件名被错误归类到0的分类里:

res = []
a = ['dog7', 'cat5', 'dog77', 'dog44', 'cat5']
for filename in a:
    if 'dog' in filename:
        res.append(1)
    elif 'cat' in filename:
        res.append(0)
    else:
        raise ValueError(f"非法文件名:{filename},仅允许包含dog或cat的文件名")

可选写法:map+lambda(可读性略低于列表推导式,适合简单的单行转换场景)

res = list(map(lambda x: 1 if 'dog' in x else 0, a))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:45:03