Python :пересечение вложенных списков, где порядок имеет значение

Я хотел бы найти пересечение между вложенными списками, сохраняя порядок.

taxa = [['E_pyrifoliae_Ep1_96', 'Bacteria', 'Proteobacteria', 'Gammaproteobacteria', 'Enterobacteriales', 'Enterobacteriaceae', 'Erwinia'],
 ['E_amylovora_CFBP1430', 'Bacteria', 'Proteobacteria', 'Gammaproteobacteria', 'Enterobacteriales', 'Enterobacteriaceae', 'Erwinia'], 
 ['E_amylovora_ATCC49946', 'Bacteria', 'Proteobacteria', 'Gammaproteobacteria', 'Enterobacteriales', 'Enterobacteriaceae', 'Erwinia']]

Чтобы найти пересечение, у меня есть:

set.intersection(*map(set, taxa))

или

set(taxa[0]).intersection(*taxa)

но первоначальный порядок не сохраняется.

set(['Erwinia', 'Gammaproteobacteria', 'Enterobacteriaceae', 'Enterobacteriales', 'Proteobacteria', 'Bacteria'])

По сути, мне нужно найти последний общий элемент между вложенными списками (— таксономическими классификациями ). Так что мне не нужно находить все пересечения, только последнее или все, когда я могу просто вызвать последнюю запись.

intersection_lst[-1]

В этом случае я хочу, чтобы вывод был «Erwinia».

Спасибо за вашу помощь.

8
задан Binnie 14 August 2012 в 16:47
поделиться