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

Python 表达式可以在布尔文字上简化,python,list,python-3.x,boolean,pycharm,Python,List,Python 3.x,Boolean,Pycharm,我有下面的代码复制了一个PyCharm警告 表达式可以简化 此表达式检测与布尔文字的相等比较 如果我将代码更改为 if seq_group is None: 将修复警告,但真正的问题是None和[]员工列表是否相同 干杯 None和[]空列表是否相同 不,这将导致错误的行为: seq_group = [] if seq_group is None: print("it is empty") 这不会打印任何内容,None与[]的值和标识完全不同None表示没有值,[]表示没有值的列表

我有下面的代码复制了一个
PyCharm
警告

表达式可以简化

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

如果我将代码更改为

if seq_group is None:
将修复警告,但真正的问题是
None
[]
员工列表是否相同

干杯

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")

我同意@ŁukaszRogalski的说法,我相信最重要的答案可以纠正这个警告。我有点犹豫要不要结束,因为实际的问题是
None
是否与
[]
相同。我还发现如果
seq\u group=None如果不是seq\u group:print(“it is None”)
,将打印
它是None
,这意味着当某个对象是
None
也可以工作。
if not seq_group:
    print("it is empty")