我不知道如何轻松地将字节列表提供给“字节”类型。虽然我让列表由“for”循环提供。该列表也突然转变为“字节”类。 我的代码如下:
bit0=bytearray()
bit=[int(0).to_bytes(length=input.sample_width, byteorder='big', signed=True)
[1::-1] for y in [z*input.channels for z in range(input.channels)]]
print(type(bit),bit)
for bit in bit:
bit0+=bit
print(type(bit),bit)
我可以预期
我的Python是“Python 3.8.18”
for bit in bit:
bit0+=bit
该循环应该有任何方法来转换“位”变量的类型。
在你的循环中:
for bit in bit:
bit0 += bit
您正在迭代 bit,它最初是字节对象的列表。但是,在循环内,您将重用名称位作为循环变量。因此,在每次迭代中,bit 不再引用列表,而是引用该列表中的每个单独的字节对象。
当您在循环后打印 type(bit) 时,它确实显示
要解决此问题,您应该在循环中使用不同的变量名称:
for b in bit:
bit0 += b
这样,您就可以迭代列表位并将每个字节对象 b 附加到位 0,而不更改位本身的引用。
这是更正后的代码:
bit0 = bytearray()
bit = [int(0).to_bytes(length=input.sample_width, byteorder='big', signed=True)[1::-1]
for y in [z*input.channels for z in range(input.channels)]]
print(type(bit), bit)
for b in bit:
bit0 += b
print(type(bit), bit)