我们学习了很多关于序列的函数,大都是不可变的,其实有一个可变的序列,在字节的调整上也非常灵活,这就是我们今天要讲的bytearray函数。在类型上,bytearray属于字节数据,和我们之前学的bytes相似。下面我们就一起看看bytearray函数的说明,参数、返回值和实例吧。
1.说明
(1) 返回值为一个新的字节数组
(2) 当3个参数都不传的时候,返回长度为0的字节数组
>>>b=bytearray() >>>b bytearray(b'') >>>len(b) 0
(3)当source参数为字符串时,encoding参数也必须提供,函数将字符串使用str.encode方法转换成字节数组
>>>bytearray('中文') Traceback(mostrecentcalllast): File"<pyshell#48>",line1,in<module> bytearray('中文') TypeError:stringargumentwithoutanencoding >>>bytearray('中文','utf-8') bytearray(b'\xe4\xb8\xad\xe6\x96\x87')
2.参数
-
如果 source 为整数,则返回一个长度为 source 的初始化数组;
-
如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
-
如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
-
如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。
-
如果没有输入任何参数,默认就是初始化数组为0个元素。
3.返回值
返回新字节数组。
4.实例
>>>S=b"abcd" >>>BA=bytearray(S) >>>[iforiinBA] [97,98,99,100] >>>BA[0]=65 >>>BA bytearray(b'Abcd')
bytearray是可变的二进制数据(byte)。
要构造bytearray对象,方法之一是将bytes数据作为bytearray()方法的参数,或者将str数据和编码作为参数。