Meh*_*san 3 python list python-3.x
考虑以下:
var1 = 'test test'
var2 = 'test test'
list1=[10,12,12,"Test"]
list2=[10,12,12,"Test"]
print(id(var1) == id(var2)) # True
print(id(list1) == id(list2)) # False
Run Code Online (Sandbox Code Playgroud)
该布尔表达式为False。这意味着list1和list2的存储位置不同。为什么具有相同值的变量指向相同的内存位置,而列表却指向不同的位置?
列表是可变的。您不希望更改一个表面上独立的列表,而修改另一个巧合的相同列表。
另一方面,字符串是不可变的。您不能对此进行更改以免var1影响var2,因此可以共享基础对象。注意,虽然不能保证两个str文字产生相同的对象。何时以及是否发生这种缓存取决于实现。