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

标签 python list

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 列表的每个项目都有一个尾随空格,所以我们需要清除它。

关于python - 检查列表中的项目是否在另一个列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34013276/

相关文章:

c# - 使用 linq 列出循环操作

python - 如何通过将某些元素保留在末尾来对Python列表进行排序

python - 如何选择最小数量来自 > 0 的列表?

python - 如何卸载awslogs-agent-setup.py?

python - Numpy .A1 数组并不总是存在

Python - 将单词分为 3 组

Python,在带有变量的列表中查找项目

python - 提高 python for 循环对嵌套列表中的 ID 进行项目计数的效率

python - 列出目录的所有文件名称到文本文件

python - Django:有没有办法防止一个 View 被同时调用两次?