百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

python可变数据类型和不可变数据类型

off999 2024-10-16 11:23 42 浏览 0 评论

说python拷贝之前我们需要了解一下可变数据类型和不可变数据类型,这两个概念在python中是很重要的

比较两个变量内存地址是否相同 可以用一下两种方法

print(id(a) == id(b))
print(a is b)

可变数据类型

在id不变的情况下,数据类型内部的元素(value)可以改变,如列表、字典、集合

列表

# 列表里面的元素改变了 但是id没有改变
numbers = [1, 2, 3, 4]
print(id(numbers))  # 140457440522720
numbers[3] = 9000
print(id(numbers))  # 140457440522720
print(numbers)  # [1, 2, 3, 9000]
numbers.append(5000)
print(id(numbers))  # 140457440522720
print(numbers)  # [1, 2, 3, 9000, 5000]


字典

# 对字典的增删改 无论怎么操作 字典的id始终保持不变,始终指向相同的内存地址
info = {
    "name": "HyRer"
}

print(id(info))  # 140482397545328
info["age"] = 18
print(info)  # {'name': 'HyRer', 'age': 18}

print(id(info))  # 140482397545328
info["name"] = "xiaoming"
print(id(info))  # 140482397545328
print(info)  # {'name': 'xiaoming', 'age': 18}

集合

集合本身是可变数据类型,但是集合里面的元素必须是不可变数据类型,这一点要注意

sets = {1, 2, 3, 4}
print(id(sets))  # 140223981126912
sets.add(5)
print(id(sets))  # 140223981126912
sets.pop()
print(id(sets))  # 140223981126912

不可变数据类型

value一旦改变,id也改变,则称为不可变类型(id变,意味着创建了新的内存空间)如:数字、字符串、布尔值,元组

对于不可变数据类型 只要value的值是相同的,不管变量名是不是一样,他们指向的内存地址都是一个,即他们的id 都是相同的

数字

# 如果数值发生改变,那么id也跟的改变
num = 10000
print(id(num))  # 4365441824

num = 200000
print(id(num))  # 4365441856

# value值一样 那么变量名指向的内存地址都是一样的
num1 = 200000
print(id(num) == id(num1))  # True
print(num1 is num)  # True

字符串

# 如果value发生改变,那么id也跟的改变
name = "xiaoming"
print(id(name))  # 140207318292464

name = "xiaodong"
print(id(name))  # 140207318354608

# value值一样 那么变量名指向的内存地址都是一样的
name1 = "xiaodong"
print(id(name1) == id(name))  # True
print(name1 is name)  # True


布尔

right = True
print(id(right))  # 4455573680
right = False
print(id(right))  # 4455573680

# value值一样 那么变量名指向的内存地址都是一样的
right1 = False
print(id(right1) == id(right))  # True
print(right is right1)  # True


元组

元祖不能增删改,所以只比较相同value值的内存地址是否相同

tup1 = (1, 2, 3)
tup2 = (1, 2, 3)

print(tup1 is tup2) # True

相关推荐

应用程序无法启动0xc0000005

4、设备主板故障也会导致无信号,建议联系专业的维修人员上门检修。5、设备显卡手指边与手指边插槽接触不良,清理一下显卡的金手指边,重新插回去,重新固定住即可。应用程序错误0xc0000005解决方法如下...

移动硬盘分区方法详解(移动硬盘分区步骤)

1、进入管理页面将新买的移动硬盘插入计算机的USB接口,右击此电脑后选择管理。2、选择压缩卷在页面里选择“磁盘管理”,右击移动硬盘,选择“压缩卷”。3、输入压缩空间的大小输入压缩空间的大小,点击右下角...

windows7副本不是正版影响使用吗

会经常弹出提示和安全警告,如果我们安装了一个非正版的windows系统,就会经常弹出此windows副本不是正版的提示,那么此windows副本不是正版有什么影响呢,其实除了视觉外,功能也会有影响。w...

100个有效qq号以及密码2025(2021最新qq号和密码大全)
100个有效qq号以及密码2025(2021最新qq号和密码大全)

有关QQ登记全国之最的数据目前并没有最新数据更新,最新的该项数据是截止于2019年12月的数据,接下来为大家带来QQ等级全国第一的用户的有关数据,仅供大家娱乐之用:截止2019年12月,全国qq等级第一名的名字叫做“小风波”,QQ等级高达1...

2026-01-13 05:51 off999

联想window7(联想windows7怎么设置锁屏时间)
  • 联想window7(联想windows7怎么设置锁屏时间)
  • 联想window7(联想windows7怎么设置锁屏时间)
  • 联想window7(联想windows7怎么设置锁屏时间)
  • 联想window7(联想windows7怎么设置锁屏时间)
怎么更新ios版本(怎么更新ios版本15.0)

苹果系统升级到指定版本的方法:下载安装【爱思助手】,打开软件后用数据线连接iPhone和电脑。等待自动安装驱动,软件显示iPhone信息后点击左侧【下载固件】。在顶部选择手机型号,将固件类型改为【可刷...

安卓手机mtp驱动下载(安卓手机驱动程序下载)
  • 安卓手机mtp驱动下载(安卓手机驱动程序下载)
  • 安卓手机mtp驱动下载(安卓手机驱动程序下载)
  • 安卓手机mtp驱动下载(安卓手机驱动程序下载)
  • 安卓手机mtp驱动下载(安卓手机驱动程序下载)
免费安装电脑系统软件(免费安装电脑系统软件哪个好)

应该是可以的只要你舍得出钱一半来说就算是笔记本换系统去电脑城就行了不会超过50块还能给你把驱动全部打好为什么非要去苏宁装呢?朋友,你好:如果在买后一年以内,属于保修范围,装系统不收费,...

网络适配器消失了(空腹血糖6.0,总感觉口渴怎么办)

网络适配器不见了原因一:未安装网卡驱动  如果电脑的系统驱动安装包中无合适的驱动文件,导致网卡驱动未能安装,自己又不知道网卡的型号,可以先从其他地方复制一个网卡万能驱动来进行安装。电脑能够上网后,再下...

电脑的摄像头怎么打开摄像头
  • 电脑的摄像头怎么打开摄像头
  • 电脑的摄像头怎么打开摄像头
  • 电脑的摄像头怎么打开摄像头
  • 电脑的摄像头怎么打开摄像头
如何关闭杀毒软件和防火墙(电脑防火墙怎么设置)

问题一、怎样关闭防火墙?  1、展开桌面下的开始菜单,在搜索栏中输入【防火墙】;  2、选择搜索结果控制面板下的【Windows防火墙】程序进入;  3、选择左栏【打开或关闭Windows防火墙】...

中关村在线笔记本报价大全(中关村在线笔记本论坛)

i5的主机有很多种啊,目前比较高性能的联想主机是联想拯救者系列,其中一款是5299元。中关村的价格都不太准的,价格也不是实时更新的,你还不如直接看京东,参考如下:AMDR53500X处理器:10...

win7音量图标不见了如何恢复

你好sese0955,win7音量图标关闭了,实际就是win7系统扬声器音量图标消失。你可以在提示栏点击小三角图标并打开,找到音量图标行为栏将‘仅显示通知’更改为‘显示图标和通知’,完成更改后记住点击...

安卓手机怎么关闭安全模式(安卓手机怎么关闭安全模式vivo)
安卓手机怎么关闭安全模式(安卓手机怎么关闭安全模式vivo)

下面介绍如何关闭oppor17安全模式的操作方法:第一步,打开oppor17手机,找到设置选项点击进入第二步,找到并且点击页面下方的其它设置选项。第三步,在出现的页面里,找到并且点击还原手机这个选项。第四步,找到并且点击抹掉全部内容和设置...

2026-01-13 00:51 off999

windows xp 死机之歌(windows死机之歌完整)

无法正常关机,其原因有:1、关机前运行了很多程序尚未关闭,造成关机命令延后执行或系统假死。2、关机程序与其它程序发生冲突或损坏。3、病毒感染,或者是硬盘或内存出现问题等等。处理办法:1、强制...

取消回复欢迎 发表评论: