不可变:对象所指向的值是不可以改变的数据类型 int str float tuple
s = 's'
print(id(s))
s = s.upper()
print(id(s))
# 输出结果
1597148412032
1597177643840
使用函数字符串s的值,然后同样用变量名s来接收,此时字符串s的id同样也变更了,说明此时新生成的字符串s已经不是原来的字符串s了,只是使用了同样的变量名
可变的:对象所指向的值是可以改变的数据类型 dict list
l1 = [1, 2, 3, 4]
print(id(l1), l1)
l1.append(5)
print(id(l1), l1)
# 输出结果:
2182712706760 [1, 2, 3, 4]
2182712706760 [1, 2, 3, 4, 5]
可以看到改变列表l1的值之后,查看l1的id是乜有变化的
字典转列表的时候只保存key在列表中 value不保留
d1 = {1: '*', 2: '*', 3: '*', 4: '*'}
print(list(d1))
# 输出结果:
[1, 2, 3, 4]