在“for 循环语句”中使用“not”

Fre*_*rik 1 python for-loop if-statement

  1. 为什么不能not在语句中使用 a for?假设 和object都是list迭代的

  2. 如果你做不到,还有其他方法吗?

这是一个示例,但“显然”存在语法错误:

tree = ["Wood", "Plank", "Apples", "Monkey"]

plant = ["Flower", "Plank", "Rose"]

for plant not in tree:
    # Do something
    pass 
else:
    # Do other stuff
    pass
Run Code Online (Sandbox Code Playgroud)

Ósc*_*pez 5

这是一种方法,使用集合并假设objectslist都是可迭代的:

for x in set(objects).difference(lst):
    # do something
Run Code Online (Sandbox Code Playgroud)

首先,您不应该调用变量list,这会与内置名称冲突。现在解释一下:表达式set(objects).difference(lst)执行一组差异,例如:

lst = [1, 2, 3, 4]
objects = [1, 2, 5, 6]
set(objects).difference(lst)
=> set([5, 6])
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我们发现其中的元素objects不在列表中。