from operator import attrgetter movie = """en 1 The cat pt 1 A gata en 2 ate some cat food. pt 3 comeu pt 3 a comida dela. en 4 Then she slept on the bed. pt 4 Depois, pt 5 ela dormiu na cama. """ lines = movie.splitlines() def uniq(seq): uniqqed = [] for i, elem in enumerate(seq): if elem != seq[i-1]: uniqqed.append(elem) return uniqqed class Line: def __init__(self, line): self.bits = line.split() self.code = self.bits[0] self.stamp = int(self.bits[1]) self.text = ' '.join(self.bits[2:]) def __str__(self): return "[%s:%d] %s" % (self.code, self.stamp, self.text) lines = [Line(line) for line in lines] codes = [line.code for line in lines] class Row: def __init__(self): self.source = [] self.target = [] def __str__(self): return ' '.join([line.text for line in self.target])+'\n' \ +' '.join([line.text for line in self.source]) limit= max([line.stamp for line in lines]) lines = iter(lines) rows = []