如何在字典中搜索列表中的值

Pra*_*kwa 2 python dictionary list

我有以下代码行:

food_web = {'Limpets ': [' Seaweed'],'Zooplankton ': ['Phytoplankton'],'Fish':[' Prawn'],'Whelk ': [' Limpets', ' Mussels'],'Lobster ': [' Crab', ' Mussels', ' Limpets', ' Whelk']}
Run Code Online (Sandbox Code Playgroud)

我想确定一个顶点捕食者,这意味着一个键没有出现在字典的任何值中,所以我需要搜索所有值中的每个键,但我不知道如何处理这个.值列表也让我感到困难.我只是在学习python,所以我的知识可能会低于标准.

Kev*_*vin 5

我有一个简洁的解决方案,但它只有在键和值是字符对字符相同的情况下才有效,所以你必须首先去除字符串开头和结尾的空格.

food_web = {
    'Limpets': ['Seaweed'],
    'Zooplankton': ['Phytoplankton'],
    'Fish': ['Prawn'],
    'Whelk': ['Limpets', 'Mussels'],
    'Lobster': ['Crab', 'Mussels', 'Limpets', 'Whelk']
}

print set(food_web.keys()) - set().union(*food_web.values())
Run Code Online (Sandbox Code Playgroud)

结果:

set(['Zooplankton', 'Fish', 'Lobster'])
Run Code Online (Sandbox Code Playgroud)

更多解释:set.union()获取所有参数并将它们组合成一组.星号将元素解包food_web.values()为单个参数.减去两个集合给出了第一组中不在第二组中的所有项目的集合.