попытка понимания списка:
>>> list_of_lists = [[], [1], [], [2,3],[]]
>>> list_of_lists
[[], [1], [], [2, 3], []]
>>> [ l for l in list_of_lists if l]
[[1], [2, 3]]
потому что и пустой список не правдивый , if l
оценивается как ложь, когда список пуст, поэтому он не засчитывается.