当我很惊讶
[] is not []
评估为 True
。
这段代码中发生了什么?真正 not
和 is
语句在做什么?
原文由 fjsj 发布,翻译遵循 CC BY-SA 4.0 许可协议
当我很惊讶
[] is not []
评估为 True
。
这段代码中发生了什么?真正 not
和 is
语句在做什么?
原文由 fjsj 发布,翻译遵循 CC BY-SA 4.0 许可协议
is
是身份比较。
==
是相等比较。
您的声明正在制作两个不同的列表并检查它们是否是同一实例,而它们不是。如果您使用 ==
它将返回 true 并且因为它们都是空列表。
原文由 unholysampler 发布,翻译遵循 CC BY-SA 2.5 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答873 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
a is not b
是一个特殊的运算符,相当于not a is b
。如果 a 和 b 绑定到同一个对象,运算符
a is b
返回 True,否则返回 False。当您创建两个空列表时,您会得到两个不同的对象,因此is
返回 False(因此is not
返回 True)。