Python - 如果不在列表中

25

我有两个列表:

mylist = ['total','age','gender','region','sex']
checklist = ['total','civic']

我必须与一些我继承的代码一起工作,它看起来像这样:

for item in mylist:
    if item in checklist:
        do something:

如何使用上面的代码告诉我:'civic'不在mylist中

这本来是理想的方法,但我不能使用它,不要问我为什么。

for item in checklist:
    if item not in mylist:
        print item

结果:

civic

1
它在我的Python 2.7中可以工作。 "if item not in mylist" 或者 "if not item in mylist" 都可以。 - Jerry T
4个回答

55

你的代码应该是能够工作的,但你也可以尝试:

    if not item in mylist :

这对我来说是最合乎逻辑的,而且有效!谢谢Will——不确定为什么它在底部。让我们把它往上推! - embulldogs99

13

这个怎么样?

for item in mylist:
    if item in checklist:
        pass
    else:
       # do something
       print item

2
它在我的Python 2.7上运行良好。 "if item not in mylist" 或 "if not item in mylist" 都可以使用。 - Jerry T
1
实际上,首选的语法是 a not in b - iRhonin

4

如果我理解正确,您可以尝试

for item in [x for x in checklist if x not in mylist]:
    print (item)

1
你最好按照这个语法做:

你需要这样写

if not (item in mylist):  
    Code inside the if

7
实际上,PEP8更倾向于使用"item not in mylist"而不是"not item in mylist"。这类似于“is not”与“not...is”的用法。https://www.python.org/dev/peps/pep-0008/#programming-recommendations - Quantum7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接