Python:bytes、bytearray
bytes、bytearray
Python3引入两个新类型
- bytes:不可变字节序列
- bytearray:字节数组、可变
字符串与bytes
字符串是字符组成的有序序列,字符可以使用编码来理解
bytes是字节组成的有序的不可变序列
bytearray是字节组成的有序的可变序列
编码与解码
字符串按照不同的字符集编码encode返回字节序列bytes
encode(encoding='utf-8', errors='strict') -> bytes
字节序列按照不同的字符集解码decode返回字符串
bytes.decode(encoding="utf-8", errors="strict") -> str
bytearray.decode(encoding="utf-8", errors="strict") -> str
bytes定义
bytes() 空bytes
a = bytes() print(type(a)) #<class 'bytes'>
bytes(int) 指定字节的bytes,被0填充
a = bytes(4) print(a) #b'\x00\x00\x00\x00'
bytes(iterable_of_ints) -> bytes [0,255]的int组成的可迭代对象
a = bytes(range(3)) print(a) #b'\x00\x01\x02'
bytes(string, encoding[, errors]) -> bytes 等价于string.encode()
print(bytes("abc","utf8")) #b'abc' print("abc".encode("utf8")) #b'abc'
bytes(bytes_or_buffer) -> immutable copy of bytes_or_buffer 从一个字节序列或者buffer复制出 一个新的【相当于前copy】
a = "abc".encode("utf8") b = bytes(a) print(id(a) == id(b)) #True
bytes操作【注意:下述方法若需要使用int类型,值在[0, 255]】
和str类型类似,都是不可变类型,所以方法很多都一样。只不过bytes的方法,输入是bytes,输出是 bytes
a.split() #切割
a = bytes("abc","utf8") print(a.split(b"b")) #[b'a', b'c']
类方法 bytes.fromhex(string)
- string必须是2个字符的16进制的形式,'6162 6a 6b',空格将被忽略
print(bytes.fromhex('6162 09 6a 6b00')) #b'ab\tjk\x00'
返回16进制表示的字符串
print("abc".encode("utf8").hex()) #616263
索引
print("abc".encode("utf8")[1]) #98
bytearray定义
bytearray
bytearray() 空bytearray
a = bytearray() print(type(a)) #<class 'bytearray'>
bytearray(int) 指定字节的bytearray,被0填充
a = bytearray(5) print(a) #bytearray(b'\x00\x00\x00\x00\x00')
bytearray(iterable_of_ints) -> bytearray [0,255]的int组成的可迭代对象
a = bytearray(range(3)) print(a) #bytearray(b'\x00\x01\x02')
bytearray(string, encoding[, errors]) -> bytearray 近似string.encode(),不过返回可变对象
a = bytearray("abc","utf8") print(a) #bytearray(b'abc')
bytearray(bytes_or_buffer) 从一个字节序列或者buffer复制出一个新的可变的bytearray对象
a = bytearray("abc","utf8") b = bytearray(a) print(b) #bytearray(b'abc')
bytearray操作【注意:下述方法若需要使用int类型,值在[0, 255]】
和bytes类型的方法相同
print(bytearray(b'abcdef').replace(b'f',b'k')) #bytearray(b'abcdek')
bytearray(b'abc').find(b'b') #1
类方法 bytearray.fromhex(string)
- string必须是2个字符的16进制的形式,'6162 6a 6b',空格将被忽略
print(bytearray.fromhex('6162 09 6a 6b00')) #bytearray(b'ab\tjk\x00')
hex() #返回16进制表示的字符串
print(bytearray('abc'.encode()).hex()) #616263
索引
print(bytearray(b'abcdef')[2]) #99
append(int) 尾部追加一个元素
b = bytearray() b.append(97) print(b) #bytearray(b'a')
insert(index, int) 在指定索引位置插入元素
b = bytearray() b.append(97) b.insert(1,98) print(b) #bytearray(b'ab')
extend(iterable_of_ints) 将一个可迭代的整数集合追加到 当前bytearray
b = bytearray() b.append(97) b.insert(1,98) b.extend([65,66,67]) print(b) #bytearray(b'ab') #bytearray(b'abABC')
pop(index=-1) 从指定索引上移除元素,默认从尾部移除
b = bytearray() b.append(97) b.insert(1,98) b.extend([65,66,67]) b.pop(-1) print(b) #bytearray(b'abAB')
remove(value) 找到第一个value移除,找不到抛 ValueError异常
b = bytearray() b.append(97) b.insert(1,98) b.extend([65,66,67]) b.pop(-1) b.remove(66) print(b) #bytearray(b'abA')
clear() 清空bytearray
b = bytearray() b.append(97) b.insert(1,98) b.extend([65,66,67]) b.pop(-1) b.remove(66) b.reverse() b.clear() print(b) #bytearray(b'')
reverse() 翻转bytearray,就地修改
b = bytearray() b.append(97) b.insert(1,98) b.extend([65,66,67]) b.pop(-1) b.remove(66) b.reverse() print(b) #bytearray(b'Aba')
Python:bytes、bytearray相关推荐
- Python: bytes、bytearray 详解
文章目录 写在开头的话 Python: bytes.bytearray 00. 概述 01.bytes定义 02. bytes操作 03. bytearray定义 04. bytearray操作 05 ...
- python入门学习[看漫画学Python:有趣、有料、好玩、好用读书笔记]
写在前面:本文中绝大多数图片来源于图书:看漫画学Python:有趣.有料.好玩.好用,本文仅供个人学习使用,如有侵权,请联系删除. 学习编程语言最好的方式就是多写,多写,多写!!!哪有什么快速掌握,能 ...
- Python:列表、集合等交集、并集、差集、非集简介及其代码实现之详细攻略
Python:列表.集合等交集.并集.差集.非集简介及其代码实现之详细攻略 目录 列表.集合等交集.并集.差集.非集简介及其代码实现之详细攻略 1.交集:A & B & C & ...
- 循序渐进学Python:安装、使用与运行程序
Python这种语言的相关技术正在飞速的发展,用户数量急剧扩大,本文向读者介绍Python编程的有关知识. [51CTO.com独家特稿]Python是一种功能强大的解释执行自动编译的动态型语言,面向 ...
- python:容器、迭代器、生成器 简单介绍
python:容器.迭代器.生成器 简单介绍 python提供了多种数据类型来存放数据项. 之前已经介绍了几个python中常用的容器,分别是列表list.元组tuple.字典dict和集合set. ...
- 【社区图书馆】《看漫画学Python:有趣、有料、好玩、好用(全彩修订版)》
背景 Python是一门既简单又强大的编程语言,被广泛应用于数据分析.大数据.网络爬虫.自动化运维.科学计算和人工智能等领域.Python也越来越重要,成为国家计算机等级考试科目,某些中小学也开设了P ...
- Python 数据类型 bytes 与 bytearray 使用教程
bytes 与 bytearray 是python非常重要的数据类型,但其重要性经常被我们忽视了.在实际开发过程中,又总是遇到 bytes 类型.举例,pickle 序列化, json序列化就是将对象 ...
- 零基础入门Python:基本命令、函数、数据结构
导读:本文对Python的基本使用做一个简单的介绍.限于篇幅,本文不可能详细讲解Python的使用,只是针对本书涉及的数据挖掘案例所用到的代码进行基本讲解.如果读者是初步接触Python,并且使用Py ...
- Python:[-1]、[:-1]、[::-1]、[n::-1] 原理大详解(超全超仔细!)
Python中切片原理 0 下标说明 无论是str还是list等,从左到右下标从0开始,从右到左下标从-1开始 如:str = 'python',下标示意图如下: 1 两参数:[开始:结束] 知识点1 ...
最新文章
- displaysettings.java_Android设置系统开机自动永不休眠
- python把矩阵存为文件_python 读取文件并把矩阵转成numpy的两种方法
- java垃圾回收机制_JVM的垃圾回收机制——垃圾回收算法
- 处理大并发之四 libevent demo详细分析(对比epoll)
- 软件测试mysql基础面试题_测试面试题合集之数据库
- MyEclipse部署Web项目Servers报错:NullPointerException at com.genuitec.eclipse.ast.deploy.core.Deployment
- 微信小程序 - 文字收缩与展开
- php得到第一个数组_php怎么获取数组第一个元素
- 2014全国计算机等级考试四级数据库工程师考试大纲,4月全国计算机等级考试四级数据库工程师笔试试卷(1)...
- tcs标准编写软件_标准编写工具TCS2017使用指南.PDF
- Eclipse语言包的安装与卸载
- Android开发中的Java包的定义
- Android UI绘制流程源码详细讲解Draw(Canvas canvas)
- 男生和女生的十个瞬间 (温馨啊)【转载】
- Druid java.sql.SQLException: 违反协议 / Oracle连接报错生违反协议
- 修改 IDEA 中 @author 默认值
- 毕设中常出现的定性检验与定量检验的方法及误差指标计算公式【自用】
- 《软件工程导论第6版》--张海藩 牟永敏 课后答案及其详解 第5章 总体设计
- linux 7 删除mtab内容,centos7之文件搜索及sed文本处理
- iOS开发教你怎么集成ApplePay