相等运算符 (==) 是 Python 中的比较运算符,用于比较两个操作数的值并检查值是否相等。而“ is” 运算符是标识运算符,用于检查两个操作数是否引用同一个对象(存在于同一个内存位置)。
插图:
# 等式算子 >>> a=10 >>>b=10 >>>a==b True >>>a=10 >>>id(a) 2813000247664 >>>b=10 2813000247664 # a 和 b 都指向同一个对象 >>>a is b True >>>c=a # 这里变量 a 被分配给新变量 c,它保存相同的对象和相同的内存位置 >>> id(c) 2813000247664 >>>a is c True
示例 1:
# python3 代码说明 == 和is操作符[]是空列表的区别 list1 = [] list2 = [] list3=list1 if (list1 == list2): print("True") else: print("False") if (list1 is list2): print("True") else: print("False") if (list1 is list3): print("True") else: print("False") list3 = list3 + list2 if (list1 is list3): print("True") else: print("False")
输出:
True False True False
- 如果条件为“真”,则第一个的输出,因为 list1 和 list2 都是空列表。
- 其次,如果条件显示为“False”,因为两个空列表位于不同的内存位置。因此 list1 和 list2 指的是不同的对象。我们可以使用 中的id() 函数来检查它,它返回一个对象的“身份”。
- 如果条件为“真”,则第三个的输出,因为 list1 和 list3 都指向同一个对象。
- 如果条件为“False”,则第四个的输出,因为两个列表的串联总是会产生一个新列表。
示例 2
list1 = [] list2 = [] print(id(list1)) print(id(list2))
输出:
139877155242696 139877155253640
这表明 list1 和 list2 引用了不同的对象。