1.更新模型
分类 | Python类型 |
可变类型 | 列表、字典 |
不可变类型 | 数字、字符串、元组 |
我们可以通过内建函数id()来确认对象的身份在前后是否发生了变化,例如:
x = "python numbers and strings"
print(id(x))
x = "are immutable?!?"
print(id(x))
i = 0
print(id(i))
i = i + 1
print(id(i))
list = ["ammonia",23,34,"me"]
print(list)
print(list[2])
print(id(list))
list[2] = list[2] + 1
list[3] = "you"
print(list)
print(id(list))
list.append("he")
list.append(list[2] + 1)
print(list)
print(id(list))
结果:
2762416065712
2762416065312
2762413992208
2762413992240
['ammonia', 23, 34, 'me']
34
2762415750784
['ammonia', 23, 35, 'you']
2762415750784
['ammonia', 23, 35, 'you', 'he', 36]
2762415750784
由此可以看出,列表的值不管怎么改变,列表的ID始终保持不变。
2.访问模型
分类 | Python类型 |
直接访问 | 数字 |
顺序访问 | 字符串、列表、元组 |
映射访问 | 字典 |
总结
数据类型 | 存储模型 | 更新模型 | 访问模型 |
数字 | Scalar(标量) | 不可更改 | 直接访问 |
字符串 | Scalar(标量) | 不可更改 | 顺序访问 |
列表 | Container(容器) | 可更改 | 顺序访问 |
元组 | Container(容器) | 不可更改 | 顺序访问 |
字典 | Container(容器) | 可更改 | 映射访问 |