Skip to main content
 首页 » 编程设计

python之检查列表中的项目是否在另一个列表中

2025年05月04日14langtianya

values = ['Limpets', 'Mussels', 'Phytoplankton', 'Zooplankton', 'Prawn', 'Crab', 'Whelk', 'Seaweed'] 
 
keys = ['Whelk ', 'Mussels ', 'Bird ', 'Prawn ', 'Fish ', 'Zooplankton ', 'Crab ', 'Lobster ', 'Limpets '] 

我想要的是值中不在键中的项目。我试过把它写成:

for item in values: 
   if item not in keys: 
       print(item) 

答案是应该得到的是

phytoplankton 
seaweed 

但我得到的是:

Phytoplankton 
Seaweed 
Limpets 
Mussels 
Crab 
Whelk 
Prawn 
Zooplankton 

我还尝试将项目存储在列表中,然后打印该列表,但我尝试过的任何方法都不适合我。我看到了一些使用列表理解的答案,但我正在学习入门类(class),所以我得到的只是循环……如果有任何不同,我正在使用 python3.5。

请您参考如下方法:

只用集合

set(values).difference(set(keys)) 

或者对于这个特定的例子,OP 可以使用

set(values).difference(set([i.strip() for i in keys])) 

因为 keys 列表的每个项目都有一个尾随空格,所以我们需要清除它。