小编Bin*_*nie的帖子

访问字典python中的列表中的项目

我有一个字典,其中包含与列表相关的键.

mydict = {'fruits': ['banana', 'apple', 'orange'],
         'vegetables': ['pepper', 'carrot'], 
         'cheese': ['swiss', 'cheddar', 'brie']}
Run Code Online (Sandbox Code Playgroud)

我想要做的是使用if语句,如果我搜索项目及其在字典中的任何列表中,它将返回密钥.这就是我的尝试:

item = cheddar
if item in mydict.values():
    print key 
Run Code Online (Sandbox Code Playgroud)

但它没有做任何事情,输出应该是:

cheese
Run Code Online (Sandbox Code Playgroud)

这看起来很简单,但我无法弄明白.任何帮助都很棒.

python dictionary list

9
推荐指数
1
解决办法
5万
查看次数

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

我想在维护顺序的同时找到嵌套列表之间的交集.

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']]
Run Code Online (Sandbox Code Playgroud)

找到我的交集点:

set.intersection(*map(set, taxa))
Run Code Online (Sandbox Code Playgroud)

要么

set(taxa[0]).intersection(*taxa)
Run Code Online (Sandbox Code Playgroud)

但原始订单没有保留.

set(['Erwinia', 'Gammaproteobacteria', 'Enterobacteriaceae', 'Enterobacteriales', 'Proteobacteria', 'Bacteria'])
Run Code Online (Sandbox Code Playgroud)

基本上,我需要做的是找到嵌套列表之间的最后一个共同元素(它们是分类学分类).因此,当我可以调用最后一个条目时,我不需要找到所有交叉点,只需要找到最后一个或所有交叉点.

intersection_lst[-1]
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望输出为'Erwinia'.

谢谢你的帮助.

python intersection list nested-lists

8
推荐指数
1
解决办法
1765
查看次数

标签 统计

list ×2

python ×2

dictionary ×1

intersection ×1

nested-lists ×1