我有以下代码重现PyCharm
警告
表达式可以简化
此表达式检测与布尔文字的等式比较。
seq_group = []
if seq_group == []: # warning here
print("it is empty.")
如果我将代码更改为,
if seq_group is None:
会修正警告,但真正的问题是None
和[]
列出相同的内容吗?
欢呼声
答案 0 :(得分:8)
None
和[]
空列表是一样的吗?
不,这会导致错误的行为:
seq_group = []
if seq_group is None:
print("it is empty")
这不会打印任何内容,None
与[]
,价值和身份完全不同。 None
表示缺少值,[]
表示没有值的列表。混淆可能源于两者都在条件句中评估False
的事实。
警告可能是由于您只需将seq_group
与not
一起使用,而不是使用==
的文字:
if not seq_group:
print("it is empty")