Не существует метода remove_all
или чего-либо подобного, но лучшие способы сделать это sh - это использовать понимание списка или filter
.
Предполагая, что ls
содержит только другие списки Вы можете написать следующее, чтобы удалить все вхождения пустого списка []
:
Понимание списка
ls = [[1], [1, 2], [1, 2, 3], [], [2], [2, 3], [], [], [3]]
ls = [x for x in ls if x]
# now ls = [[1], [1, 2], [1, 2, 3], [2], [2, 3], [3]]
Фильтр
ls = [[1], [1, 2], [1, 2, 3], [], [2], [2, 3], [], [], [3]]
ls = list(filter(None, ls))
# now ls = [[1], [1, 2], [1, 2, 3], [2], [2, 3], [3]]
Обобщение для большего, чем просто пустой список
Если вы хотите удалить все вхождения данного элемента elem
(это не пустой список), вы можете изменить приведенный выше код следующим образом:
ls = [x for x in ls if x != elem]
##### or #####
ls = list(filter(lambda x: x != elem, ls))