Как удалить строку из списка, если в ней есть определенное слово - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь написать кусок кода, который поможет мне выбрать, что есть на завтрак, в зависимости от того, насколько я голоден и сколько времени у меня осталось (личный проект новичка: p).

Дело в том, что если я действительно голоден, но у меня мало времени или времени, я хочу удалить несколько вариантов, в которых есть слово «avena».

Вот код (я не собираюсь писатьздесь все, только та часть, с которой у меня проблемы):

ptiempo_bebi = ["Leche fría con punchao", "Leche fría con avena", "Leche 
fría con cereal", "Yogurt con cereal", "Yogurt solo"]
mtiempo_bebi = ["Té", "Agua hervida con punchao", "Leche caliente con avena", "Yogurt con avena cocida"]
bebi = [ptiempo_bebi, mtiempo_bebi]

Итак, если я введу «Я действительно голоден», но «У меня мало времени», список следует отредактировать, удаливкаждая строка со словом "avena" в ней.

Я пробовал много вещей, но я 3 дня застрял с этой проблемой: (.

Пробовал с использованием функций и .remove

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"]

И

ptiempo_bebi = [ elem for elem in ptiempo_bebi if elem == "avena"]

Извините, если мой код выглядит ужасно или я действительно испортил какой-либо синтаксис.Желательно получить любой ответ и объяснить, почему он работает и в какой части я все испортил.

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете отфильтровать свой список, чтобы исключить строки, содержащие определенное слово или фразу, используя понимание списка.Например:

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']
...