Python学习笔记015——序列(字节数组 bytearray)
1 序列
常见的序列有:list tuple str bytes(字节串) bytearray
2 字节数组bytearray
可变的字节序列,相当于bytes的可变版本。
3 创建函数bytearray
创建bytearray对象的方法规则
- bytearray()
- bytearray(整数n)
- bytearray(整型可迭代对象)bytearray(b'字符串')bytearray(字符串, encoding='utf-8')
示例:
- >>> bytearray()
- bytearray(b'')
- >>> bytearray([1,2,3])
- bytearray(b'\x01\x02\x03')
- >>> bytearray(["a","b","c"])
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- TypeError: an integer is required
- >>> bytearray(3)
- bytearray(b'\x00\x00\x00')
- >>> bytearray("abc",encoding="utf-8")
- bytearray(b'abc')
- >>> bytearray("abc")
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- TypeError: string argument without an encoding
4 运算操作
字节数组的操作方式与列表类似
- + += * *=
- 比较运算: < <= > >= == !=
- in /not in 运算符
- 索引 index / 切片 slice
示例
- >>> a = bytearray(b"abcde")
- >>> a[0]
- 97
- >>> print(a)
- bytearray(b'abcde')
- >>> a[1:] = bytearray(b'BCDE') #切片赋值
- >>> a
- bytearray(b'aBCDE')
- >>> a[0] = 0x41 #单元素赋值,A的ASCII值0x41
- >>> a
- bytearray(b'ABCDE')
- >>> b = bytes(a) #将字节数组转成字节串
- >>> b
- b'ABCDE'
- >>> c = bytearray(b) #将字节串转成字节数组
- >>> c
- bytearray(b'ABCDE')
5 bytearray常用方法
方法 | 说明 |
---|---|
ba 代表字节数组 | |
ba.clear() | 清空 |
ba.append(n) | 追加一个字节(n为0~255的整数) |
ba.remove(value) | 删除第一个出现的字节,如果没有则产生ValueError错误 |
ba.reverse() | 字节顺序进行反转 |
ba.decode(encoding='utf-8') | 转为字符串 |
ba.find(sub[, start[,end]]) | 查找子字节串 |
6 bytes、bytearray与str之间的区别
字节串bytes、字节数组bytearray是二进制数据组成的序列,其中每个元素由8bit二进制(同1byte,同2位16进制数,同0~255)组成。
字节数计算机的语言,字符串是人类的语言,他们之间通过编码表形成一一对应关系。
最小的 ASCII
编码表只需要一位字节,且只占用了其中 [31,127]
的码位;
str 存储unicodel 6字符(0~65535)
- bytes/bytearry = str.encode(encoding="utf-8")
- str = bytes/bytearray.decode(encoding="utf-8")
encode:编码,decode:解码
Python学习笔记015——序列(字节数组 bytearray)的更多相关文章
- Python学习笔记015——汉字编码
1 字符串的编码(encode)格式 GB2312 GBK GB18030 UTF-8 ASCII 其中常用的编码格式有 国标系列:GB18030(GBK(GB2312)) (window ...
- Python学习笔记3-Python元组、数组、字典集合的操作
在Python中数组中的每一项可以是不同的数据类型 元组:只能读不能写的数组 aTuple=(1,'abc','tmc',79.0,False) print aTuple[1:3] print typ ...
- Python学习笔记:序列构成的数组
列表推导是一种构建列表(list)的快捷方式 #列表推导 symbols = '!@#$%' codes = [ord(symbol) for symbol in symbols] #ord()Pyt ...
- Python学习笔记(1)——数组差集
面试的时候被问到这样一个问题:有A.B两个数组,找出B中有A中没有的所有元素(换言之即是求差集B-A).当时比较紧张,用了最原始的双重嵌套循环逐个比较,很显然这种时间复杂度高达O(n2)的算法相当lo ...
- Python学习笔记015——文件file的常规操作(二进制文件)
有时候诸如图片.音乐等信息不是以文本的形式存储的,而是二进制文件格式存储的. 有时候很多信息不是以文本文件的形式存储的 很多时候,都需要用到二进制读取文件.毕竟很多信息不是以文本的形式存储.例如:图片 ...
- Python学习笔记015——文件file的常规操作之一(文本文件)
1 什么是文件 文件是用于数据存储的单位 文件通常用来长期保存数据 读写文件是最常见的I/O操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件的功能都是由操作系统提供的,一般而言,操 ...
- python学习笔记:数据类型——列表/数组(list)
Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.通过下标访问列表中的元素(又称索引.角标),下标从0开始计数.list定义,使用中括号[]. l ...
- python学习笔记九——序列
4.4 序列 序列是具有索引和切片能力的集合.元组.列表和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力,因此元组.列表和字符串都属于序列.序列索引功能演示: tuple=(&quo ...
- Python学习笔记_二维数组的查找判断
在进行数据处理的工作中,有时只是通过一维的list和有一个Key,一个value组成的字典,仍无法满足使用,比如,有三列.或四列,个数由不太多. 举一个现实应用场景:学号.姓名.手机号,可以再加元素 ...
随机推荐
- Visual Studio Code 构建C/C++开发环境
转自: https://blog.csdn.net/lidong_12664196/article/details/68928136#visual-sutdio-code%E4%BB%A5%E5%8F ...
- go语言基础之不要操作没有合法指向的内存
1.不要操作没有合法指向的内存 示例: package main //必须有个main包 import "fmt" func main() { //没有指向内存 var p *in ...
- SSIS包部署错误之运行环境设置
在SQLServer代理处新建了一个job,步骤里面的操作是指向一个SSIS模型包 执行,报错如下 根据报错信息是64bit,于是做出修改如下图 再次执行 OK
- Convert CString to ANSI string in UNICODE projects
Convert CString to ANSI string in UNICODE projects Quick Answer: use an intermediate CStringA. Norma ...
- ZH奶酪:Linux新建用户+远程登录
7.想在VBUbuntu中新建一个账户,但是用useradd命令发现没有权限,原来Ubuntu默认不是root权限登录,需要按照下边的教程才能新建用户. http://www.linuxidc.com ...
- 【Linux】Linux 文件中^M字符处理
当我们把文件从Windows传到Linux环境时候,常常在每一行的末尾,会出现一些 ^M的字符.而这些字符会影响文件的正常读写和执行; 要去掉这些'^M'字符,有很多种办法,比如直接dox2unix, ...
- Nginx启用ssl以及免费证书申请
主要是这个东西,折腾了我两天,所以记录下来. 最开始是在meteor下面调用一个webservice,但是发现meteor项目的发布环境时https,所以请求的webservice也必须时webser ...
- PHP 表单 - 5(完整表单实例)
PHP 完整表单实例 本章节将介绍如何让用户在点击"提交(submit)"按钮提交数据前保证所有字段正确输入. PHP - 在表单中确保输入值 在用户点击提交按钮后,为确保字段值是 ...
- 分享几个.NET 下的计划任务组件
Quartz http://www.quartz-scheduler.net/(现项目在使用,可以看我之前的文章) Hangfire http://hangfire.io/ Install-Packa ...
- libcurl库进行http通讯-开篇
从今天開始介绍一些经常使用的库. 首先就来写一写关于libcurl库. libcurl主要功能就是用不同的协议连接和沟通不同的server~也就是相当封装了的sockPHP 支持libcurl(同意你 ...