在列表中的元素中搜索子字符串并删除该元素

use*_*030 4 python search element substring list

我有一个列表,我试图删除其中的元素'pie'.这就是我所做的:

['applepie','orangepie', 'turkeycake']
for i in range(len(list)):
    if "pie" in list[i]:
         del list[i]
Run Code Online (Sandbox Code Playgroud)

我一直在使列表索引超出范围,但是当我更改del为一个print语句时,它打印出的元素很好.

Mar*_*air 6

而不是从您正在迭代的列表中删除项目,尝试使用Python的良好列表推导语法创建一个新列表:

foods = ['applepie','orangepie', 'turkeycake']
pieless_foods =  [f for f in foods if 'pie' not in f]
Run Code Online (Sandbox Code Playgroud)