`not` 运算符与 python 列表的奇怪行为

2022-01-21 00:00:00 python list conditional-statements

问题描述

当我尝试使用 python 的 not 运算符检查列表是否为空时,它的行为方式很奇怪.

When I'm trying to check whether a list is empty or not using python's not operator it is behaving in a weird manner.

我尝试使用带有列表的 not 运算符来检查它是否为空.

I tried using the not operator with a list to check whether it is empty or not.

>>> a = []
>>> not (a)
True
>>> not (a) == True
True
>>> not (a) == False
True
>>> True == False
False

not (a) == False 的预期输出应该是 False.

The expected output for not (a) == False should be False.


解决方案

== 有 比 not 更高的优先级.not (a) == False 被解析为 not (a == False).

== has higher precedence than not. not (a) == False is parsed as not (a == False).

相关文章