Как Pythonic может найти самый длинный общий префикс списка списков?

Given: список списков, таких как[[3,2,1], [3,2,1,4,5], [3,2,1,8,9], [3,2,1,5,7,8,9]]

Todo: Найти самый длинный общий префикс из всех подсписков.

Exists: В другой теме & quot;Общие элементы между двумя списками, не использующими наборы в Python& quot ;, предлагается использовать & quot; Counter & quot ;, который доступен выше python 2.7. Однако наш текущий проект был написан на Python 2.6, поэтому & quot; Counter & quot; не используется

I currently code it like this:

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]

Но я нахожу это не очень питоническим, есть ли лучший способ кодирования?

Спасибо!

New edit: Извините, что упомянул: в моем случае, общие элементы списков в 'l' apos; иметь тот же порядок и всегда начинать с 0-го пункта. Так что у вас не будет таких случаев, как[[1,2,5,6],[2,1,7]]

Ответы на вопрос(6)

Ваш ответ на вопрос