在 Python 里,is 和 == 是新手最容易混淆的知识点,超过 80% 的同学都会在这里踩坑。很多人以为两者都是 “判断相等”,随意混用,轻则逻辑出错、程序异常,重则导致项目数据错乱、功能失效。
==:判断两个变量的内容值是否相等,只看数据,不看位置。
is:判断两个变量是否是内存里同一个对象,看身份,不看外表。
用双胞胎举例:
长相一样 → == 为 True
不是同一个人 → is 为 False
在列表、字典等可变类型中,两者结果会完全不同:内容相同的列表,== 为 True,但 is 为 False,因为它们是两个独立对象。一旦用错,程序会出现隐蔽逻辑漏洞。