values = ['Limpets', 'Mussels', 'Phytoplankton', 'Zooplankton', 'Prawn', 'Crab', 'Whelk', 'Seaweed']
keys = ['Whelk ', 'Mussels ', 'Bird ', 'Prawn ', 'Fish ', 'Zooplankton ', 'Crab ', 'Lobster ', 'Limpets ']
Run Code Online (Sandbox Code Playgroud)
我想要的是值不在键中的项目.我试过把它写成:
for item in values:
if item not in keys:
print(item)
Run Code Online (Sandbox Code Playgroud)
应该得到的答案是
phytoplankton
seaweed
Run Code Online (Sandbox Code Playgroud)
但我得到的是:
Phytoplankton
Seaweed
Limpets
Mussels
Crab
Whelk
Prawn
Zooplankton
Run Code Online (Sandbox Code Playgroud)
我也尝试将项目存储在列表中,然后打印该列表,但我尝试过的任何内容都不适用于我.我看到了一些使用列表理解的答案,但是我正在学习一门入门课程,所以我得到的就是循环......我使用的是python3.5,如果这有什么不同的话.
只需使用套装
set(values).difference(set(keys))
Run Code Online (Sandbox Code Playgroud)
或者对于OP可以使用的这个特定示例
set(values).difference(set([i.strip() for i in keys]))
Run Code Online (Sandbox Code Playgroud)
由于keys列表具有每个项目的尾随空间,因此我们需要清除它.