【发布时间】:2012-08-14 16:47:13
【问题描述】:
我想在保持顺序的同时找到嵌套列表之间的交集。
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”。
感谢您的帮助。
【问题讨论】:
-
你使用的是什么版本的python?
标签: python list intersection nested-lists