编写一个名为div2bstr的函数,该函数接受一个字节字符串(bstr)并返回一个字节字符串。字节字符串中的每个字符都被2除(整数除法),然后组合成一个新的字节字符串。使用字符串和for循环返回新的字节字符串。
我尝试用空字符串实现此功能,然后使用for循环将其连接起来,但是我无法获得正确的答案。
def div2bstr(bstr):
final_str = ''
final_str += [i//2 for i in bstr]
return final_str
呼叫div2bstr(b'Hello')
时,预期结果为b'$2667'
。
运行我的软件时出现错误:
final_str += [i//2 for i in bstr]
TypeError: can't concat bytes to list
我知道当我i
是整数时,这就是为什么它无法连接的原因,但是我不知道如何解决此问题并获得正确的结果。
答案 0 :(得分:3)
将字节列表转换为bytes
对象,您可以将整个函数体写在一行中。
def div2bstr(bstr):
return bytes(i//2 for i in bstr)