Qual é a maneira Python de encontrar o maior prefixo comum de uma lista de listas?

Dado: uma lista de listas, como[[3,2,1], [3,2,1,4,5], [3,2,1,8,9], [3,2,1,5,7,8,9]]

Façam: Encontre o prefixo comum mais longo de todas as sub-listas.

Existe: Em outro segmento "Elementos comuns entre duas listas que não usam conjuntos em Python", é sugerido usar o" Counter ", que está disponível acima do python 2.7. No entanto, nosso projeto atual foi escrito em python 2.6, então" Counter "não é usado.

Eu atualmente codifico assim:

l = [[3,2,1], [3,2,1,4,5], [3,2,1,8,9], [3,2,1,5,7,8,9]]
newl = l[0]
if len(l)>1:
    for li in l[1:]:
    newl = [x for x in newl if x in li]

Mas acho que não é muito pythonic, existe uma maneira melhor de codificação?

Obrigado!

Nova edição: Desculpe mencionar: no meu caso, os elementos compartilhados das listas em 'l' têm o mesmo pedido e sempre começam no 0º item. Então você não terá casos como[[1,2,5,6],[2,1,7]]

questionAnswers(6)

yourAnswerToTheQuestion