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

如何按指定模式移除列表中以'JKE0'开头的字符串,现有代码执行无效果?

问题原因

你的代码存在三个明显错误:

  • 关键字拼写错误:Python的匿名函数关键字是lambda,你写的lamda少了字母b,本身就存在语法问题
  • 正则方法调用错误:r.match是正则匹配方法本身,没有传入待匹配的字符串执行调用,方法对象永远不可能和字符串a相等,所以所有元素都被保留,列表长度自然不会变化
  • 筛选逻辑错误:filter()会保留判定结果为真的元素,你要移除符合开头规则的元素,需要对匹配结果取反,保留匹配失败的元素

修正方案

正则版本

注意re.match()本身就默认从字符串开头匹配,刚好符合你的需求:

import re

new_list = list(x)
r = re.compile(r'JKE0')
# 筛选所有不以JKE0开头的元素
rslt = list(filter(lambda a: not r.match(a), new_list))

更简单的非正则版本

如果不需要复杂规则,直接用字符串内置的startswith()方法性能更高,也不需要导入正则库:

new_list = list(x)
rslt = [a for a in new_list if not a.startswith('JKE0')]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:54:04