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