哪些是连接不同类型数据的python最佳实践?

时间:2012-04-27 13:12:09

标签: python concatenation

我想生成包含字符串长度和字符串内容的字节序列 例如,对于字符串'hello',我想获得b'\x05hello'
在阅读了一些文档后,我写了一个函数:

def LenAndStrBytes(strdata):
  return bytearray([len(strdata)&0xFF])+strdata if strdata!=[] else 0

问题:
我是python编程的新手,我想知道,哪些是最好的python实践来连接不同类型的数据,如int和可迭代的东西,如bytearray
我是否以最佳方式编写了我的函数?

2 个答案:

答案 0 :(得分:2)

嗯,只是larsmans指出,这取决于你的用法。如果您可以获得具有清晰代码和满足上下文限制的结果,那么这是一个很好的实践。

不需要&0xFF,字节数组检查以确保0到255之间的值。

>>> strdata = 'hello'
>>> bytearray([len(strdata)]) + strdata if strdata else bytearray()
bytearray(b'\x05hello')

你也可以

import struct
bytearray(struct.pack('B%ds' % len(strdata), len(strdata), strdata))

答案 1 :(得分:0)

在将二进制数据写入文件(或通过网络发送)之前,您是否尝试将二进制数据序列化?

您是否想要使用pickle module代替数据序列化?