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)的更多相关文章

  1. Python学习笔记015——汉字编码

    1 字符串的编码(encode)格式 GB2312   GBK   GB18030  UTF-8  ASCII 其中常用的编码格式有 国标系列:GB18030(GBK(GB2312)) (window ...

  2. Python学习笔记3-Python元组、数组、字典集合的操作

    在Python中数组中的每一项可以是不同的数据类型 元组:只能读不能写的数组 aTuple=(1,'abc','tmc',79.0,False) print aTuple[1:3] print typ ...

  3. Python学习笔记:序列构成的数组

    列表推导是一种构建列表(list)的快捷方式 #列表推导 symbols = '!@#$%' codes = [ord(symbol) for symbol in symbols] #ord()Pyt ...

  4. Python学习笔记(1)——数组差集

    面试的时候被问到这样一个问题:有A.B两个数组,找出B中有A中没有的所有元素(换言之即是求差集B-A).当时比较紧张,用了最原始的双重嵌套循环逐个比较,很显然这种时间复杂度高达O(n2)的算法相当lo ...

  5. Python学习笔记015——文件file的常规操作(二进制文件)

    有时候诸如图片.音乐等信息不是以文本的形式存储的,而是二进制文件格式存储的. 有时候很多信息不是以文本文件的形式存储的 很多时候,都需要用到二进制读取文件.毕竟很多信息不是以文本的形式存储.例如:图片 ...

  6. Python学习笔记015——文件file的常规操作之一(文本文件)

    1 什么是文件 文件是用于数据存储的单位 文件通常用来长期保存数据 读写文件是最常见的I/O操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件的功能都是由操作系统提供的,一般而言,操 ...

  7. python学习笔记:数据类型——列表/数组(list)

    Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素.通过下标访问列表中的元素(又称索引.角标),下标从0开始计数.list定义,使用中括号[]. l ...

  8. python学习笔记九——序列

    4.4 序列 序列是具有索引和切片能力的集合.元组.列表和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力,因此元组.列表和字符串都属于序列.序列索引功能演示: tuple=(&quo ...

  9. Python学习笔记_二维数组的查找判断

    在进行数据处理的工作中,有时只是通过一维的list和有一个Key,一个value组成的字典,仍无法满足使用,比如,有三列.或四列,个数由不太多. 举一个现实应用场景:学号.姓名.手机号,可以再加元素 ...

随机推荐

  1. Oracle密码过期设置和修改密码问题

    Oracle密码过期设置和修改密码问题 学习了:https://jingyan.baidu.com/article/ce09321b5608612bff858ff3.html sqlplus / as ...

  2. SqlServer2008第一次安装后连接问题

    在第一次安装好SqlServer并启动服务后,对服务器进行连接: 1:根据计算机名进行windows身份验证 结果如下 2:根据计算机名进行SqlServer身份验证 结果如下: 3:根据IP进行wi ...

  3. [Javascript] Closure Cove, Common mistake

    They’ve got a problem with their existing code, which tries to use a closure. Check it out: function ...

  4. (算法)Partition方法求数组第k大的数

    如题,下面直接贴出代码: #include <iostream> using namespace std; int Partition(int* A,int left,int right) ...

  5. 【Node.js】初体验之安装和HelloWorld

    听说Node.js是个蛮吊的东东.中午休息时间有限,暂时看了下知道怎么安装和初步使用了. 1.安装: 到Node.js官网下载就可以了,才5M多点,双击后按步骤安装就可以了. 2."Hell ...

  6. RHCSA和RHCE

    RHCSA: 红帽考试流程: RHCE(上下午) 上午:RHCSA(红帽认证系统管理员)下午:RHCE (红帽认证系统工程师) 上午考试通过,下午未通过(RHCSA)上午考试未通过,下午考试通过(没有 ...

  7. 【转载】如何在Oracle中复制表结构和表数据

    1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: create table ta ...

  8. Linux下时间格式转换及获取方法

    Linux下使用clock_gettime给程序计时 #include <stdio.h> #include <unistd.h> #include <stdlib.h& ...

  9. 【转】TCP/IP详解学习笔记(二)

    TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据 ...

  10. 天气预报的Ajax效果

    最近在网站上看了很多显示实时天气预报的,挺实用而且用户体验也不错.对用户的帮助也比较大,用户可以通过你的网站了解到实时的天气信息.感觉比较有意思,于是自己钻研了一下其中的实现方法.于是决定把代码分享给 ...