布尔字面量可以简化表达式

17

我有下面的代码,它会导致 PyCharm 警告:

表达式可以简化

这个表达式检测到与布尔字面量的相等比较。

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

如果我将代码更改为:

if seq_group is None:

会修复警告,但真正的问题是 None[] 空列表是否相同?

干杯!


我同意@ŁukaszRogalski的观点,我相信最佳答案可以解决警告。但是我有些犹豫是否要关闭,因为实际问题是None[]是否相同。 - Dimitris Fasarakis Hilliard
1个回答

14

None[]空列表是相同的吗?

不是,使用它们会导致错误的行为:

seq_group = []

if seq_group is None:
    print("it is empty")
这并不打印任何东西,None在值和标识上与[]完全不同。 None表示值的缺失,[]表示没有值的列表。 混淆可能来自于两者都偶然在条件语句中评估为False
警告可能是因为您可以简单地使用带有notseq_group而不是使用带有==的文字。
if not seq_group:
    print("it is empty")

我还发现,如果 seq_group = None,那么当 not seq_group 时,会打印出 it is none。这意味着在某些对象为 None 时,not 也可以起作用。 - daiyue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接