Python 从与字符串匹配的列表中删除所有元素
我试图从列表中删除包含字符串“abc”的列表中的所有元素Python 从与字符串匹配的列表中删除所有元素,python,python-3.x,python-2.7,list,remove-if,Python,Python 3.x,Python 2.7,List,Remove If,我试图从列表中删除包含字符串“abc”的列表中的所有元素 list_a=['abc-123','abc-000','345-abc','1-abc-b','aaa','ab','xyz'] 我使用以下方法: for i in list_a: if not "abc" in list_a: list_a.remove(i) 当我打印列表时,我看到响应没有删除列表中所有符合条件的元素。我得到以下答复: ['abc-000','1-abc-b','ab'] 我预期的回答是:['aaa'、'a
list_a=['abc-123','abc-000','345-abc','1-abc-b','aaa','ab','xyz']
我使用以下方法:
for i in list_a:
if not "abc" in list_a: list_a.remove(i)
当我打印列表时,我看到响应没有删除列表中所有符合条件的元素。我得到以下答复:
['abc-000','1-abc-b','ab']
我预期的回答是:
['aaa'、'ab'、'xyz']
您不应该对正在迭代的列表进行变异。。。创建一个新列表。这通常是使用列表理解的良好环境。
new_lst = [x for x in list_a if 'abc' not in x]
print(new_lst)