Форум сайта python.su
0
Доброго времени суток!
Подскажите пожалуйста, как можно удалить вложенные пустые списки? Понятно, что с помощью рекурсии, но у меня не выходит.
Пример:
[[[[]]]], [], 5] => [5]
def del_null(x): for p in x: if isinstance(p, list) and len(p) != 0: del_null(p) elif isinstance(p, list): del p
Отредактировано polsovatel (Июль 22, 2019 21:19:46)
Офлайн
857
>>> def f(lst): ... out = [] ... for i in lst: ... if isinstance(i, list): ... if i: ... o = f(i) ... if o: ... out.append(o) ... else: ... out.append(i) ... return out ... >>> f([[[[[]]]], [], 5]) [5] >>> f([]) [] >>> f([[]]) [] >>> f([[], 1]) [1] >>> f([[], [[1], []]]) [[[1]]] >>>
Офлайн
0
Большое спасибо!
Офлайн