順序を維持しながら、ネストされたリスト間の共通部分を見つけたいと思います。
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'])
基本的に、私が行う必要があるのは、ネストされたリスト間の最後の共通要素を見つけることです(これらは分類学的分類です)。したがって、すべての交差点を見つける必要はありません。最後のエントリを呼び出すことができる場合は、最後の1つまたはすべての交差点を見つける必要があります。
intersection_lst[-1]
この例では、出力を「Erwinia」にします。
ご協力いただきありがとうございます。