可以将python中常见数据类型按照可变与不可变大致分为两类
可变类型 | 不可变类型 |
---|---|
列表、字典、类 | 数值型、字符串、元组 |
理解可变与不可变
熟悉python的都知道,像字符串和元组创建之后是无法更改的,如果更改那么就只能替换掉,也就是说丢弃原来的存储空间,将变量名链接到新的空间中。而像list和dict是支持增删改的。
以list和tuple增加元素的操作为例(用内置函数 id(var) 来查看变量内存地址)
x = [1,2]
print('mutable var:list')
print('original:', id(x))
x.append(10)
print('modifed:', id(x))
print('\n')
print('immutable var:tuple')
y = tuple([1, 2])
print('original:', id(y))
y+=(10,)
print('modified:', id(y))
reuslt:
mutable var:list
original: 140611793965640 [1, 2]
modifed: 140611793965640 [1, 2, 10]
immutable var:tuple
original: 140611829612104 (1, 2)
modified: 140611793818824 (1, 2, 10)