Go over each element in the list en remove it when there is an element with length 0.
l = ['As Michael Harvey writes, paragraphs are “in essence—a form of punctuation, and like other former. ',
'',
'Many novice writers tend to make a sharp distinction between content and style, thinking that a paper can be strong']
output = [ele for ele in l if len(ele) > 0]
list1, list2 = output
This works for your example, but it does not "split" on the empty element. Then you can use a for loop:
output = ['']
for ele in l:
if len(ele) > 0:
output[-1] += ele
else:
output.append('')
This last part splits your list:
l = ['a', 'b', '', 'c']
output = ['']
for ele in l:
if len(ele) > 0:
output[-1] += ele
else:
output.append('')
# output = ['ab', 'c']
Edit: output as lists:
l = ['a', 'b', '', 'c']
output = [[]]
for ele in l:
if len(ele) > 0:
output[-1].append(ele)
else:
output.append([])
# output = [['a', 'b'], ['c']]
If you have more lists it stops here since output can be as large as you want. If you know the result is two lists you can unpack them:
lst1, lst2 = output
sidenote: do not use variable list
since it is a data structure in python.