表达式可以在布尔文字

时间:2016-09-28 11:41:05

标签: python list python-3.x boolean pycharm

我有以下代码重现PyCharm警告

  

表达式可以简化

     

此表达式检测与布尔文字的等式比较。

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

如果我将代码更改为,

if seq_group is None:

会修正警告,但真正的问题是None[]列出相同的内容吗?

欢呼声

1 个答案:

答案 0 :(得分:8)

  

None[]空列表是一样的吗?

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

seq_group = []

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

这不会打印任何内容,None[],价值和身份完全不同。 None表示缺少值,[]表示没有值的列表。混淆可能源于两者都在条件句中评估False的事实。

警告可能是由于您只需将seq_groupnot一起使用,而不是使用==的文字:

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