gpt4 book ai didi

Python:顺序很重要的嵌套列表的交集

转载 作者:太空狗 更新时间:2023-10-29 21:01:33 25 4
gpt4 key购买 nike

我想在保持顺序的同时找到嵌套列表之间的交集。

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'])

基本上,我需要做的是找到嵌套列表之间的最后一个公共(public)元素(它们是分类学分类)。所以我不需要找到所有的路口,只要调用最后一个条目就可以找到最后一个或所有路口。

intersection_lst[-1]

在这种情况下,我希望输出为“Erwinia”。

感谢您的帮助。

最佳答案

找到交点,然后重新排序。

intersection_set = set.intersection(*map(set, taxa))
intersection_lst = [t for t in taxa[0] if t in intersection_set]

或者,如果您非常喜欢单行本:

sorted(set.intersection(*map(set, taxa)), key=lambda x: taxa[0].index(x))

关于Python:顺序很重要的嵌套列表的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11957040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com