Python如何移除嵌套列表中包含带*字符元素的子列表
嵌套列表过滤实现方案
需求说明
给定任意嵌套列表,若子列表中存在包含特殊字符
*的字符串元素,则将该子列表整体移除。输入可包含成百上千个等长的子列表,要求实现高效过滤。
实现代码
# 示例输入 mistake_list = [['as','as*s','sd','*ssa'],['a','ds','dfg','mal']] # 过滤逻辑,使用any()短路求值提升效率 corrected_list = [ sublist for sublist in mistake_list if not any('*' in element for element in sublist) ] print(corrected_list)
输出验证
运行上述代码可得到目标输出:
[['a', 'ds', 'dfg', 'mal']]
方案说明
- 采用Python内置
any()函数实现短路判断:只要在子列表中找到第一个包含*的元素,就会立即终止该子列表的剩余检查,无需遍历子列表全部元素,适配大规模输入场景 - 无额外第三方依赖,兼容所有Python3版本
内容的提问来源于stack exchange,提问作者PSR
相关产品推荐
相关产品推荐

