Python3 bytes和bytearray
程序员文章站
2024-03-23 17:42:04
...
bytes、bytearray
Python3引入两个新类型:
- bytes:不可变类型
- bytearrayy:字节数组,可变
一丶bytes
1.bytes定义方法
- bytes()空bytes
In [1]: bytes()
Out[1]: b''
- bytes(int)指定字节的bytes,被0填充
In [2]: bytes(10)
Out[2]: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
- bytes(interable_of_ints),范围为[0,255]的int组成的可迭代对象
In [3]: bytes([0x61,99,0b11100000])
Out[3]: b'ac\xe0'
- bytes(string,encoding[,errors])等价于str.encode()
In [5]: bytes("abc",encoding="utf-8")
Out[5]: b'abc'
- bytes(bytes_or_buffer)从一个字节序列或者buffer复制出来一个不可变的bytes对象
In [6]: b1=b"abc"
In [7]: b2=bytes(b1)
In [8]: b2
Out[8]: b'abc'
- 使用b的前缀定义
- 只允许使用基本ASCII使用字符形式b"“abc9”
- 使用十六进制表示b"\x41\x61"
2.bytes操作
除了格式化方法(format和format_map)和几个处理unicode数据的方法(包括casefold、idecimal、isdentifier、isnumeric、isprintable和encode)之外,str类型的其他方法都支持bytes和bytearray
- 类方法bytes.fromhex(string)
string必须是2个字符的16进制形式,“61 62 6a 6b”,空格将被忽略
In [8]: a=bytes.fromhex("61 62 63 6a 6b")
In [9]: a
Out[9]: b'abcjk'
- hex()和上面相反
返回进制的字符串
In [10]: b="abc".encode().hex()
In [11]: b
Out[11]: '616263
- 索引,返回一个int类型数
In [12]: b"abcd"[1]
Out[12]: 98
二丶bytearray
1.bytes定义
- bytearray()返回空的bytearray
In [2]: bytearray()
Out[2]: bytearray(b'')
- bytearray(int)指定字节的bytearray,被0填充
In [3]: bytearray(10)
Out[3]: bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
- bytearray(iterable_of_ints)范围为[0,255]的int组成的可迭代对象
In [4]: bytearray([98,0x61,0b01100001])
Out[4]: bytearray(b'baa'
- bytearray(string,encoding[,errors]),近似于str.encode(),返回可变对象
In [7]: bytearray("ABCD",encoding="UTF-8")
Out[7]: bytearray(b'ABCD')
- bytearray(bytes_or_buffer)从一个字节序列或者buffer复制出来一个新的可变的bytearray对象
In [8]: bytearray(b"abc")
Out[8]: bytearray(b'abc')
2.bytearray操作
- 和bytes类型的方法相同
In [9]: bytearray(b"abcdefk").replace(b"f",b"m")
Out[9]: bytearray(b'abcdemk')
In [10]: bytearray(b"abcdefk").find(b"a")
Out[10]: 0
- 类方法
bytearray.fromhex(string)
string必须是2个字符的16进制形式
In [11]: bytearray.fromhex("61 62 6364 65")
Out[11]: bytearray(b'abcde')
- hex()上面的相反
In [12]: bytearray("abc".encode()).hex()
Out[12]: '616263'
- 索引
In [13]: bytearray(b"abcde")[1]
Out[13]: 98
- append(int)尾部追加一个元素
In [14]: b=bytearray()
In [15]: b.append(97)
In [16]: b
Out[16]: bytearray(b'a')
- insert(index,int)在指定位置插入元素
In [17]: b.insert(1,99)
In [18]: b
Out[18]: bytearray(b'ac')
- extend(iyterable_of_ints)将一个可迭代的整数集合追加到当前的bytearray
In [19]: b.extend([65,66,67])
In [20]: b
Out[20]: bytearray(b'acABC')
- pop(index= -1)从指定的索引上一处元素,默认从尾部移除,返回移除的值的int类型
In [21]: b.pop()
Out[21]: 67
- remove(value),找到第一个value移除,找不到抛异常
- clear()清空bytearray
In [29]: b
Out[29]: bytearray(b'acA')
In [30]: b.clear()
In [31]: b
Out[31]: bytearray(b'')
- reverse()就地翻转
In [27]: b
Out[27]: bytearray(b'Aca')
In [28]: b.reverse()
In [29]: b
Out[29]: bytearray(b'acA')
上一篇: My_arduino(2)小项目代码1
下一篇: chache的作用