python基础篇学习(十)之可变与不可变类型

一、不可变类型

不可变类型:值改变的情况下,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
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值