Hi here is another solution, please check :
#!/usr/bin/python
lol = list()
marker = '--->'
with open('txt', 'r') as fh:
mem = None
lo = []
for line in fh.readlines():
k,v = line.strip().split(marker)
k, v = [ x.strip() for x in [k,v]]
if not mem or mem == k:
lo.append((k,v))
mem = k
else:
lol.append(lo)
lo = [(k,v)]
mem = k
lol.append(lo)
for i in lol:
k,v = zip(*i)
print '%s%s %s' % (k[0],marker,' '.join(v))
Output:
NP---> N_NNP N_NN_S_NU N_NNP N_NNP
VGF---> V_VM_VF
NP---> N_NN