bytes不可变,用于只读二进制数据,支持字面量b”且可哈希;bytearray可变,可通过构造函数创建,适合需修改的场景。

在Python中,bytes 和 bytearray 是两种用于处理二进制数据的内置类型。它们都存储字节(0 到 255 之间的整数),但在可变性上有关键区别。
bytes:不可变的字节序列
bytes 类型表示一个不可变的字节序列。一旦创建,就不能修改其中的内容。这类似于字符串(str)——你不能更改某个位置的字节。
常见创建方式:
使用字面量:b'hello'通过 bytes() 构造函数:bytes([104, 101, 108, 108, 111])将字符串编码:bytes('hello', 'utf-8') 或 'hello'.encode('utf-8')
操作示例:
立即学习“Python免费学习笔记(深入)”;
简单三层购物网站源码
一、源码特点采用典型的三层架构进行开发,包含购物车、登陆注册、个人中心、留言板、新闻系统,前台页面、后台管理等二、功能介绍本源码是一个三层购物网站源码,功能齐全,界面美观简洁,非常适合二次开发和学习,欢迎下载三、菜单功能前台页面1、注册2、登陆3、首页4、购物车5、会员中心6、收藏家7、客服中心8、留言板后台管理1、管理员系统:管理员列表;管理员添加2、会员管理系统:会员列表3、新闻系统:新闻列表
0 查看详情
x = b'hello'print(x[0]) # 输出: 104 (字符 'h' 的 ASCII 值)# x[0] = 72 # 错误!bytes 不支持 item 赋值
bytearray:可变的字节序列
bytearray 与 bytes 类似,但它是可变的。你可以修改、添加或删除其中的字节。这使得它在需要频繁修改二进制数据时非常有用。
创建方式与 bytes 类似,只是使用 bytearray():
bytearray(b'hello')bytearray([104, 101, 108, 108, 111])bytearray('hello', 'utf-8')
可变性示例:
y = bytearray(b'hello')y[0] = 72 # 修改第一个字节为 'H' (ASCII 72)print(y) # 输出: bytearray(b'Hello')y.append(33) # 添加感叹号print(y) # 输出: bytearray(b'Hello!')
主要区别总结
可变性:bytes 不可变,bytearray 可变性能:bytes 更轻量,适合只读场景;bytearray 支持原地修改哈希性:bytes 可以用作字典键或集合元素(因为不可变),bytearray 不行语法字面量:只有 bytes 有字面量写法(b”),bytearray 必须通过构造函数创建
基本上就这些。根据是否需要修改数据,选择 bytes 或 bytearray 即可。
以上就是python中bytes和bytearray的介绍的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/910443.html
微信扫一扫
支付宝扫一扫