一、不可变类型
不可变类型:值改变的情况下,id变了
1.整型
age = 18
print(id(age))
age = 19
print(id(age))
----------------------------------------------------------------
# 运行结果:
2203613424464
2203613424496
2.浮点型
price = 6.6
print(id(price))
price = 7.7
print(id(price))
----------------------------------------------------------------
# 运行结果:
1705945552336
1705946741744
3.字符串类型
name = '小圆子'
print(id(name))
name = '李白'
print(id(name))
----------------------------------------------------------------
# 运行结果:
2091507558896
2091507559376
4.布尔值类型
a = True
print(id(a))
a = False
print(id(a))
----------------------------------------------------------------
# 运行结果:
140716879935592
140716879935624
5.元组类型
a = (1, 2)
print(id(a))
a = (2, 3)
print(id(a))
----------------------------------------------------------------
# 运行结果:
1744809826048
1744810168640
二、可变类型
可变类型:值改变的情况下,id不变,说明改的是原值
1.列表类型
l = ['小圆子', '李白', '韩信']
print(id(l))
l[1] = '露娜'
print(l)
print(id(l))
----------------------------------------------------------------
# 运行结果:
2595025467008
['小圆子', '露娜', '韩信']
2595025467008
2.字典类型
dic = {
'name': '小圆子',
'age': 20,
'height': 165,
'salary': 100
}
print(id(dic))
dic['age']=27
print(dic)
print(id(dic))
----------------------------------------------------------------
# 运行结果:
1957040705280
{'name': '小圆子', 'age': 27, 'height': 165, 'salary': 100}
1957040705280
3.集合类型
s = {1, 2, 3, 4}
print(id(s))
s.add(5)
print(s)
print(id(s))
----------------------------------------------------------------
# 运行结果:
1998363851008
{1, 2, 3, 4, 5}
1998363851008
总结:
不可变类型:值改变的情况下,id变了(整型、浮点型、字符串类型、布尔值类型、元组是不可变类型)
可变类型:值改变的情况下,id不变,说明改的是原值( 列表类型、字典类型、集合类型是可变类型)
三、拓展
1.字典的key必须是不可变类型,所以整型、浮点型、字符串类型、布尔值类型、元组类型都可以当字典的key
2.但是一般字典的key都使用字符串,可以对value有描述性的功能
dic = {10: 'a', 3.14: 'b', 'x': 'c', True: 'd', (1, 2): 'e'}
print(dic[10], dic[3.14], dic['x'], dic[True], dic[(1, 2)])
----------------------------------------------------------------
# 运行结果:
a b c d e