a = 10
b = 10
c = [1,2,3]
d = [1,2,3]
print(a is b)
print(c is d)
output:
True
False
产生上面情况的原因是python中数据分为可变(mutable)和不可变(immutable)。不可变类型有数字、字符串、元组;可变类型有列表、字典。对不可变类型的变量重新赋值,是重新分配一块新的内存存新的值,将变量指向新的内存。而为了节约内存,解释器会重复利用常见的不可变类型数据。
a = 10
b = 10
c = [1,2,3]
d = [1,2,3]
print(a is b)
print(c is d)
output:
True
False
产生上面情况的原因是python中数据分为可变(mutable)和不可变(immutable)。不可变类型有数字、字符串、元组;可变类型有列表、字典。对不可变类型的变量重新赋值,是重新分配一块新的内存存新的值,将变量指向新的内存。而为了节约内存,解释器会重复利用常见的不可变类型数据。