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(容器) | 可更改 | 映射访问 |
本文探讨了Python中数据类型的可变与不可变特性,通过`id()`函数展示了字符串、数字、列表在修改前后身份的变化。列表作为可变类型,其内容可变但ID不变,而数字和字符串作为不可变类型,修改会导致新的内存分配。同时,总结了Python数据类型的访问模式:数字直接访问,字符串和元组顺序访问,字典映射访问。

3329

被折叠的 条评论
为什么被折叠?



