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

Python:如何用lambda+filter获取列表中被其他元素包含的字符串列表

问题分析与解决

你的代码逻辑完全偏离需求:lambda x: x if x in stringlist else ""里的x in stringlist只是检查x本身是否在列表中,这对列表里的每个元素都成立,所以filter会原样返回所有元素,根本没实现“被其他字符串包含”的判断。

要实现需求,需要判断当前字符串x是否被列表里其他字符串包含,也就是存在某个y≠x,且x是y的子串。用lambda+filter的正确写法如下:

stringlist = ["red", "blue", "loss", "boss", "sloss"]
result = list(filter(lambda x: any(y != x and x in y for y in stringlist), stringlist))
print(result)  # 输出: ['loss']

代码说明

  • any(...)用来检测是否存在符合条件的字符串y:
    • y != x:排除字符串自身包含自己的情况(避免误判)
    • x in y:检查x是否是y的子串
  • filter会保留所有满足上述条件的x,也就是被列表中其他字符串包含的元素。

内容的提问来源于stack exchange,提问作者D-Money

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:50:12