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

Python中如何获取any()方法判定为真的匹配项及一行实现

一行实现获取字符串中匹配的目标符号

你不需要硬改造any()函数来实现收集匹配项的需求——any()本身是为存在性判断设计的短路函数,找到第一个匹配值就会终止迭代,天生不适合做结果收集。直接用下面两种无冗余显式循环块的一行写法即可:

效率最高的写法(无顺序要求场景)

用集合交集运算,单字符查找效率为O(1),代码最简洁,完全不需要手写循环逻辑:

matched_signs = set(x) & {'/', '+', '-'}

针对你给出的示例x = 'A/B',运行后得到的结果是{'/'},会返回所有命中的符号。

保留检查顺序的写法(有顺序要求场景)

如果你需要按照['/', '+', '-']的原有检查顺序返回结果,用列表推导即可,写法比多行显式for循环块简洁得多,是Python社区公认的优雅实现:

matched_signs = [sign for sign in ['/', '+', '-'] if sign in x]

同样针对示例x = 'A/B',运行后返回['/'];如果字符串里同时存在多个目标符号,比如x = 'A/B+C',会按检查顺序返回['/', '+']。

注意:不要为了强行"完全不出现for关键字"去写嵌套高阶函数的晦涩写法(比如配合filter加lambda的实现),可读性会远差于上面两种方案,维护成本更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 20:19:01