Ich möchte die Schnittmenge zwischen verschachtelten Listen finden, während die Reihenfolge beibehalten wird.Python: Kreuzung von verschachtelten Listen, in denen Reihenfolge wichtig ist
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']]
die Kreuzung finden Ich habe:
set.intersection(*map(set, taxa))
oder
set(taxa[0]).intersection(*taxa)
aber die ursprüngliche Reihenfolge nicht eingehalten wird.
set(['Erwinia', 'Gammaproteobacteria', 'Enterobacteriaceae', 'Enterobacteriales', 'Proteobacteria', 'Bacteria'])
Im Grunde, was ich tun muss, ist das letzte gemeinsame Element zwischen den verschachtelten Listen finden (sie sind taxanomic Klassifikationen). Ich muss also nicht alle Schnittpunkte finden, nur den letzten oder alle, wenn ich nur den letzten Eintrag aufrufen kann.
intersection_lst[-1]
In diesem Fall möchte ich den Ausgang "Erwinia" sein.
Danke für Ihre Hilfe.
, welche Version von Python sind mit Ihnen zu arbeiten? –
die Version ist Python 2.7.3 – Binnie