Jaki jest Pythonic sposób na znalezienie najdłuższego wspólnego prefiksu listy list?

Dany: lista list, takich jak[[3,2,1], [3,2,1,4,5], [3,2,1,8,9], [3,2,1,5,7,8,9]]

Do zrobienia: Znajdź najdłuższy wspólny prefiks wszystkich podlist.

Istnieje: W innym wątku ”Wspólne elementy między dwiema listami nie używającymi zestawów w Pythonie", sugeruje się użycie" Counter ", który jest dostępny powyżej python 2.7. Jednak nasz obecny projekt został napisany w python 2.6, więc" Counter "nie jest używany.

Obecnie koduję to tak:

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]

Ale uważam to za mało pytoniczne, czy jest lepszy sposób kodowania?

Dzięki!

Nowa edycja: Przykro mi to wspomnieć: w moim przypadku współdzielone elementy list w 'l' mają taką samą kolejność i zawsze zaczynają od 0 pozycji. Więc nie będziesz miał takich przypadków[[1,2,5,6],[2,1,7]]

questionAnswers(6)

yourAnswerToTheQuestion