Python 如何用列表推导式移除含子串'test'的列表元素
列表元素过滤正确实现
现有代码的两处问题
- 过滤逻辑写反且语法错误:Python字符串不存在
substring()方法,判断子串是否存在的语法为'目标子串' in 原字符串;你原代码里的条件逻辑是保留包含test的元素,和要移除这类元素的需求完全相悖。 - 无效变量引用:最后一行print语句引用的
a、b变量从未定义,和当前操作的my_list没有关联,运行会直接抛出未定义变量的报错。
可直接使用的实现代码
my_list = ['A', 'B', 'C', 'C', 'ahahtestaagaga'] my_list = [elem for elem in my_list if 'test' not in elem] print(my_list)
运行输出:
['A', 'B', 'C', 'C']
该实现没有做多余的通用逻辑扩展,仅针对“移除所有包含
test子串元素”的需求开发,完全匹配预期效果,像haha_test_haha、ahahtestaagaga这类带test子串的元素都会被自动过滤。
内容的提问来源于stack exchange,提问作者user12264468
相关产品推荐
相关产品推荐

