表达式可以在布尔文字上简化

dai*_*yue 11 python boolean list pycharm python-3.x

我有以下代码重现PyCharm警告,

表达式可以简化

此表达式检测与布尔文字的相等性比较.

seq_group = []
if seq_group == []: # warning here
   print("it is empty.")
Run Code Online (Sandbox Code Playgroud)

如果我将代码更改为,

if seq_group is None:
Run Code Online (Sandbox Code Playgroud)

将修复警告,但真正的问题是None[]emplty列出相同的事情?

干杯

Jim*_*ard 10

None[]空列表相同的事情?

不,这将导致错误的行为:

seq_group = []

if seq_group is None:
    print("it is empty")
Run Code Online (Sandbox Code Playgroud)

这不打印任何东西,None完全不同[],价值和身份明智.None表示没有值,[]表示没有值的列表.混淆可能源于这两个事件都恰好False在条件下进行评估.

该警告可能是由于这一事实,你可以简单地使用seq_groupnot而是采用了字面==:

if not seq_group:
    print("it is empty")
Run Code Online (Sandbox Code Playgroud)