哪种检查列表中项目的方法是正确的

which way of checking item in list is correct

哪种检查列表项的方式是正确的?

>>> lst1 = ['A', 'B']
>>> if 'C' not in lst1: print 'Hi'
...
Hi

>>> if not 'C' in lst1: print 'Hi'
...
Hi

对我来说,第一个看起来是正确的,但仍有疑问? 不确定之前是否有人在 SO 上问过这个问题,如果是,请 link

对于这种情况,它们同样正确。

在更一般的情况下,例如当调用一个 returns 布尔值的函数时,not 必须放在前面,所以如果你更容易记住,你可以坚持保持一致。

后者有效,但有些人会认为它形式不佳或 "less Pythonic"。前者更具可读性,Python 以其可读性高的语言而自豪。

Readability counts.

—蒂姆·彼得斯,The Zen of Python