String 如何从列表中删除包含特定单词的字符串

String 如何从列表中删除包含特定单词的字符串,string,list,python-3.7,String,List,Python 3.7,我正试图写一段代码,帮助我根据饥饿感和剩下的时间来选择早餐吃什么(新手个人项目:p) 问题是,如果我真的很饿,但几乎没有时间,我想删除一些有“avena”字样的选项 下面是代码(我不打算在这里全部写下来,只写我有问题的部分): 因此,如果我输入“我真的很饿”但“没有多少时间”,那么应该编辑列表,删除其中包含单词“avena”的每个字符串 我尝试了很多东西,但我已经被这个问题困扰了三天:( 已尝试使用函数和。请删除 def searchword(lists, word): for eleme

我正试图写一段代码,帮助我根据饥饿感和剩下的时间来选择早餐吃什么(新手个人项目:p)

问题是,如果我真的很饿,但几乎没有时间,我想删除一些有“avena”字样的选项

下面是代码(我不打算在这里全部写下来,只写我有问题的部分):

因此,如果我输入“我真的很饿”但“没有多少时间”,那么应该编辑列表,删除其中包含单词“avena”的每个字符串

我尝试了很多东西,但我已经被这个问题困扰了三天:(

已尝试使用函数和。请删除

def searchword(lists, word):
   for element in lists:
      for palabra in element:
         if palabra == word:
           lists = lists.remove(element)
           return lists
print(searchword(ptiempo_bebi, "avena"))
尝试使用类似的函数,但使用del和append

for element in ptiempo_bebi:
    for palabra in element:
        if palabra == "avena":
            del(element)
        else:
            ptiempoedit_bebi.append(element)
我甚至尝试(理解和)使用列表理解

ptiempobebiedit = [ptiempo_bebi.remove(element) for palabra in element for element in list if palabra == "avena"]

抱歉,如果我的代码看起来很糟糕,或者我真的弄乱了任何语法。
如果能收到任何答案和解释,说明它的工作原理以及我弄错的部分,我将不胜感激。

您可以使用列表理解过滤列表,排除包含特定单词或短语的字符串。例如:

phrases = ['Té', 'Agua hervida con punchao', 'Leche caliente con avena', 'Yogurt con avena cocida']

filtered = [phrase for phrase in phrases if 'avena' not in phrase]
# ['Té', 'Agua hervida con punchao']
ptiempo_bebi = [ elem for elem in ptiempo_bebi if elem == "avena"]
phrases = ['Té', 'Agua hervida con punchao', 'Leche caliente con avena', 'Yogurt con avena cocida']

filtered = [phrase for phrase in phrases if 'avena' not in phrase]
# ['Té', 'Agua hervida con punchao']