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/