Vorrei trovare l'intersezione tra gli elenchi annidati mantenendo l'ordine.Python: intersezione di elenchi annidati in cui l'ordine è importante
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']]
Per trovare l'intersezione ho:
set.intersection(*map(set, taxa))
o
set(taxa[0]).intersection(*taxa)
ma l'ordine originale non viene mantenuta.
set(['Erwinia', 'Gammaproteobacteria', 'Enterobacteriaceae', 'Enterobacteriales', 'Proteobacteria', 'Bacteria'])
In sostanza, quello che devo fare è trovare l'ultimo elemento comune tra le liste nidificate (sono classificazioni taxanomic). Quindi non ho bisogno di trovare tutti gli incroci, solo l'ultimo o tutti quando posso solo chiamare l'ultima voce.
intersection_lst[-1]
In questo caso voglio che l'uscita sia "Erwinia".
Grazie per il vostro aiuto.
quale versione di Python stai lavorando con? –
la versione è python 2.7.3 – Binnie