关于python:表达式可以简化为布尔文本

expression can be simplified on boolean literal

本问题已经有最佳答案,请猛点这里访问。

我有以下代码复制了PyCharm警告,

Expression can be simplified

This expression detects equality comparison with a boolean literal.

1
2
3
seq_group = []
if seq_group == []: # warning here
   print("it is empty.")

如果我把代码改为,

1
if seq_group is None:

是否会修正警告,但真正的问题是,None[]的雇员名单是否相同?

干杯


are None and [] empty list the same thing?

不,它会导致错误的行为:

1
2
3
4
seq_group = []

if seq_group is None:
    print("it is empty")

这不打印任何内容,None[]完全不同,从价值和身份角度来看。None表示没有值,[]表示没有值的列表。这种混淆可能是由于这两种情况都发生在条件句中对False进行评估。

警告可能是因为您可以简单地将seq_groupnot一起使用,而不是将文字与==一起使用:

1
2
if not seq_group:
    print("it is empty")