不可变:对象所指向的值是不可以改变的数据类型 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]
本文探讨了不可变数据类型(如字符串)的id在修改操作后保持不变,以及可变数据类型(如列表)的id随内容变化的特点,通过实例展示了Python中字符串s和列表l1的不同行为。
1790

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



