Python: удаление вложенного списка из вложенного списка на основе элемента
У меня есть следующий список:
l = [["a", "done"], ["c", "not done"]]
Если второй элемент каждого подсписка "сделано", я хочу удалить этот подсписок. Таким образом, выход должен быть:
l = [["c", "not done"]]
Очевидно, что ниже не работает:
for i in range(len(l)):
if l[i][1] == "done":
l.pop(0)
Любая помощь будет оценена!!
5 ответов:
Используйте
list_comprehension
. Он просто строит новый список, повторяя подсписки, где второй элемент в каждом подсписке не будет содержать строкуdone
>>> l = [["a", "done"], ["c", "not done"]] >>> [subl for subl in l if subl[1] != 'done'] [['c', 'not done']] >>>
l = [["a", "done"], ["c", "not done"]] print [i for i in l if i[1]!="done"]
Или использовать
filter
l = [["a", "done"], ["c", "not done"]] print filter(lambda x:x[1]!="done",l)