d = [['John'], ['is'], ['smart'], [','], ['John'], ['Kenneddy'], ['is'], [
    ','], ['John'], ['Fitzgerald'], ['Kennedy'], ['is'], ['best']]
sum(([[x[0] for x in g]] if k else list(g) for k, g in groupby(d, key=lambda
    x: x[0][0].isupper())), [])
Python - Join Two List Object Eachother If Their First Name Uppercase