python bytearray转为byte_Python3 bytearray() 函数详解 将参数转为可变的字节数组

Python3 bytearray() 函数详解 将参数转为可变的字节数组

bytearray()函数的主要用途是将参数转换为一个新的字节数组,它是一个可变的整数序列,它的取值范围是0 <= x < 256(0~255),它具有可变序列的大多数方法。

它是Python的内置函数,在python文件中直接可以使用。

语法

bytearray([source[, encoding[, errors]]])

参数

source(必选) - 源对象(可被转换的值),接下来会对source的几种情况进行详解。

encoding(可选) - 虽然它是可选的,但是如果source为字符串时,它是必选的,需要指定字符串的编码格式。

errors(可选) - 这个参数一般不需要设置,默认是'strict(严格)'。还有其他选项,比如'ignore(忽略)'等等。

§ source参数的几种情况详解

如果参数是一个字符串,你必须设置encoding参数来指定的它的编码格式,比较常用的有'utf8'、'gbk'等;

如果参数是一个整数,将会按照整数的数值,使用对应数量的空字节(\x00)来表示。比如参数为5,那么返回的结果则是b'\x00\x00\x00\x00\x00';

如果参数为与buffer接口一致的对象,则从一个字节序列或者buffer复制出一个可变的bytearray对象;

如果参数是可迭代的,则它的每一个值都必须是0~255的整数(不允许是字符串或者其他值),它们将被用作数组的初始化值;

如果参数未设置或者为0,则会创建一个大小为0的数组;如果为''(空)的话会报错的;

返回值

返回一个可变的字节数组。

常用方法

这里列举了一些比较常用的方法。

方法说明

clear()清空

append(n)追加一个字节(n为0~255的整数)

remove(value)删除第一个出现的字节,如果没有则产生ValueError错误

reverse()字节顺序进行反转

decode(encoding='utf-8')转为字符串

find(sub[, start[, end]])查找子字节串

实例

§ 实例1 - 参数为字符串

不设置encoding(字符编码)会报错的。

代码及运行结果:

>>>bytearray('字节数组', 'utf8')

bytearray(b'\xe5\xad\x97\xe8\x8a\x82\xe6\x95\xb0\xe7\xbb\x84')

§ 实例2 - 参数为整数,且必须为正数,负数会报错的。

代码及运行结果:

>>>bytearray(8)

bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')

§ 实例3 - 参数为可迭代的

常用可迭代的有:列表(list),元组(tuple),range()方法以及for循环。

代码及运行结果:

>>>bytearray([1,2,3,4,5]) #列表(list)

bytearray(b'\x01\x02\x03\x04\x05')

>>>bytearray((1,2,3,4,5)) #元组(tuple)

bytearray(b'\x01\x02\x03\x04\x05')

>>>bytearray(range(1,6)) #range()方法

bytearray(b'\x01\x02\x03\x04\x05')

>>>bytearray(i for i in range(1,6)) #for循环

bytearray(b'\x01\x02\x03\x04\x05')

§ 实例4 - 参数为不设置或0

代码及运行结果:

>>>bytearray() #不设置参数

bytearray(b'')

>>>bytearray(0) #参数为0

bytearray(b'')

§ 实例5 - 常用方法 - clear()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray(8)

>>>o

bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')

#进行清空

>>>o.clear()

>>>o

bytearray(b'')

§ 实例6 - 常用方法 - append()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray(8)

>>>o

bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00')

#在最后追加了一个数字2

>>>o.append(2)

>>>o

bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x02')

§ 实例7 - 常用方法 - remove()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray([1,2,3,4,5])

>>>o

bytearray(b'\x01\x02\x03\x04\x05')

#删除数字3

>>>o.remove(3)

>>>o

bytearray(b'\x01\x02\x04\x05')

§ 实例8 - 常用方法 - reverse()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray([1,2,3,4,5])

>>>o

bytearray(b'\x01\x02\x03\x04\x05')

#反转顺序

>>>o.reverse()

>>>o

bytearray(b'\x05\x04\x03\x02\x01')

§ 实例9 - 常用方法 - decode()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray('字节数组', 'utf-8')

>>>o

bytearray(b'\xe5\xad\x97\xe8\x8a\x82\xe6\x95\xb0\xe7\xbb\x84')

#默认是utf-8编码格式,需要其他格式需指定encoding参数

>>>o.decode()

'字节数组'

§ 实例10 - 常用方法 - find()

#先声明一个字节数组并赋值给对象o

>>>o = bytearray([1,2,3,4,5])

>>>o

bytearray(b'\x01\x02\x03\x04\x05')

#查找数字3,返回其所在位置的下标。

>>>o.find(3)

2

>>>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第三方库添加记录

1 ASIHTTPRequest&#xff1a; a.下载asihttprequest b.  把Classes里的文件&#xff0c;拖到XCode中  External/Reachbility也拖进去 ->这是Apple 官方用来检查网络链接是否正常的类库 c.导入框架  SystemConfiguration.framework  MobileCoreServices.framewo…

python数据标准类型_Python的标准数据类型(下)

Python的标准数据类型(下)上一篇我们讲述了 Number String List 。这一篇我们将继续学习Python的标准数据类型 。 循序渐进&#xff0c;逐渐深化。1TupleTuple(元组)Tuple 元组与列表类似不过元组的元素不能修改元组写在小括号里 ()元素之间用逗号隔开元组的元素类型也可…

mysql connetor_python mysqlconnetor

python mysqlconnetor的使用1.[代码][Python]代码# !/usr/bin python#--*-- coding:utf-8 --*--import mysql.connectorimport osimport codecs#设置数据库用户名和密码user;#用户名pwd;#密码host;#ip地址db;#所要操作数据库名字charsetUTF-8cnx mysql.connector.connect(user…

(转)HBase二级索引与Join

二级索引与索引Join是Online业务系统要求存储引擎提供的基本特性。RDBMS支持得比较好&#xff0c;NOSQL阵营也在摸索着符合自身特点的最佳解决方案。 这篇文章会以HBase做为对象来探讨如何基于Hbase构建二级索引与实现索引join。文末同时会列出目前已知的包括0.19.3版secondary…

python编程基础题答案_大学moocPython编程基础题目及答案

情境领导理论中提到的成熟度包括()A&#xff0e;生理成熟度B&#xff0e;心理成熟度C&#xff0e;年龄成熟度D&#xff0e;工作成熟度E&#xff0e;技能成要显示当前过程中的所有变量及对象的取值&#xff0c;可以利用 ______ 窗口。A&#xff0e;监视B&#xff0e;调用堆栈C&a…

mysql主要的收获_MySQL性能测试大总结

以下的文章主要是介绍MySQL性能测试的结论&#xff0c;我们大家都知道MySQL数据库在实际实用度主要是取决于MySQL数据库的性能&#xff0c;以下的文章主要就是对MySQL性能测试的一个总结&#xff0c;望你看完之后会有所收获。好像是zdnet的实验室做得一个权威测试吧sqlserver在…

linux 下 安装 matplotlib 版本依赖(旧版本)

REDHAT 5.3 平台下 经多次报错后确认 下列版面安装未报错 gcc 4.1.2 Python 2.4.3 numpy-1.3.0 (http://cdnetworks-kr-1.dl.sourceforge.net/project/numpy/NumPy/1.3.0/numpy-1.3.0.tar.gz) matplotlib-0.91 &#xff08; from github &#xff09; ipython…

python discuz搜索api_python如何模拟搜索引擎分词

大家知道python非常的强大&#xff0c;特别针对seo也非常的有用。1、python可以自动收集与处理信息&#xff0c;比如文章标题与内容2、python可以自动登录后台发布文章之前有写过相关利用python采集信息的文章&#xff0c;这里就不多说了&#xff0c;今天说一下怎么利用python分…

java微信支付代码_Java微信支付之服务号支付代码示例

Java微信支付之服务号支付实现&#xff0c;网上的java微信支付sdk和Demo基本上是水的&#xff0c;看着头疼所以我决心自己开始写Java微信支付之公众号支付&#xff0c;多的不说见下面源码&#xff0c;为了方便使用我分别用了两个Servlet&#xff0c;一个是统一下单Unifiedorder…

朴素贝叶斯分类器python_朴素贝叶斯分类器及Python实现

贝叶斯定理贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理&#xff0c;在概率论中具有重要地位。先验概率分布(边缘概率)是指基于主观判断而非样本分布的概率分布&#xff0c;后验概率(条件概率)是根据样本分布和未知参数的先验概率分布求得的条件概率…

RDD模型

Spark是Berkeley大学AMP&#xff08;stands for Algorithms, Machines, and People&#xff09;实验室开发的一个项目。它是一个基于RDD&#xff08;Resilient Distributed Datasets&#xff09;模型&#xff0c;能够支持计算MapReduce模式的作业&#xff0c;主要用于迭代计算和…

计算机视觉python入门_计算机视觉应该怎样入门?

自学了一段时间计算机视觉(Computer Vision)&#xff0c;下文简称&#xff1a;CV。内容以基本概念为主&#xff0c;形式以看书为主&#xff0c;跟着敲代码为辅。起因&#xff1a;因工作中会涉及到交通物流风险管理、出险理赔材料审查等内容&#xff0c;会涉及到大量人工介入审阅…

java lambda if_使用Java8的Lambda实现Monda -解道Jdon

使用Java8的Lambda实现MonadMonad是函数语言(Cojure或Scala)中的设计模式概念&#xff0c; 那么现在为什么在Java中变得如此重要&#xff1f;因为Java从版本8以后引入了新的Lambda特性&#xff0c;Lambda或闭包是函数语言的特征&#xff0c;它允许你使用代码块作为一个变量&…

ConcurrentHashMap,一个更快的HashMap

ConcurrentHashMap 是 Doug Lea 的 util.concurrent 包的一部分&#xff0c;它提供比 Hashtable 或者 synchronizedMap 更高程度的并发性。而且&#xff0c;对于大多数成功的 get() 操作它会设法避免完全锁定&#xff0c;其结果就是使得并发应用程序有着非常好的吞吐量。这个月…