
一个认为一切根源都是“自己不够强”的INTJ
个人主页:用哲学编程-CSDN博客
专栏:每日一题——举一反三
Python编程学习
Python内置函数
目录
2. 使用 itertools 和 bytes 进行字节串的迭代处理
3. 使用 functools.reduce 和 bytes 进行字节串的累积操作
详细说明
概述
bytes 类返回一个新的“bytes”对象,这是一种不可变的序列,其包含的元素范围为 0 <= x < 256 的整数。bytes 是 bytearray 的不可变版本,提供了类似的操作方法,但其内容一旦创建便无法修改。bytes 对象支持索引和切片操作,可以通过多种方式构造,具体如下。
构造函数
- bytes(source=b''):
- 默认构造函数,返回一个空的 bytes 对象。
- 如果提供了 source 参数,则根据不同的类型创建对应的 bytes 对象。
- bytes(source, encoding):
- 使用指定的字符编码将 source 转换为 bytes 对象。
- source 应该是一个字符串类型,encoding 指定了编码方案(如 'utf-8','ascii' 等)。
- bytes(source, encoding, errors):
- 与上述构造函数类似,但是多了一个 errors 参数,用于指定如何处理编码错误。
- errors 参数可以是 'strict'(默认),'ignore','replace' 等等。
参数说明
- source:
- 字符串(str):需要提供 encoding 参数,将字符串编码为字节。
- 整数(int):创建一个长度为 source 的零字节数组。
- 可迭代对象:包括列表、元组等,元素必须是 0 到 255 之间的整数。
- 缓冲区接口对象:如 bytes,bytearray,memoryview 等,可以直接转换为 bytes 对象。
- encoding(可选):指定字符串编码,常用的编码方式有 utf-8,ascii,latin-1 等。
- errors(可选):指定编码错误的处理方式,常见的取值有 strict,ignore,replace,xmlcharrefreplace,backslashreplace 等。
示例
# 使用字符串和编码构造 bytes 对象
s = "Hello, 世界"
b = bytes(s, 'utf-8')
print(b) # 输出: b'Hello, \xe4\xb8\x96\xe7\x95\x8c'
# 从整数构造 bytes 对象
b = bytes(5)
print(b) # 输出: b'\x00\x00\x00\x00\x00'
# 从可迭代对象构造 bytes 对象
b = bytes([65, 66, 67, 68])
print(b) # 输出: b'ABCD'
# 通过缓冲区接口对象构造 bytes 对象
ba = bytearray(b'hello')
b = bytes(ba)
print(b) # 输出: b'hello'
字节串字面值
bytes 对象可以通过字面值创建。字面值以 b 或 B 开头,后跟一对引号(单引号或双引号)包围的内容。例如,b'hello' 或 B"hello" 都是合法的字节串字面值。
b1 = b'hello'
b2 = B"hello"
print(b1 == b2) # 输出: True
操作与方法
bytes 对象支持众多操作和方法,包括:
- 索引和切片:
b = b'hello' print(b[1]) # 输出: 101 print(b[1:3]) # 输出: b'el' - 常用方法:
- b.count(sub[, start[, end]]):返回子序列 sub 在 b 中出现的次数。
- b.

最低0.47元/天 解锁文章

627

被折叠的 条评论
为什么被折叠?



