如何将字节连接在一起



下面是代码片段:-

join_values = []
new_byteArray = [128, 0, 0, 0, 86, 70, 124, -96]
for values in byteArray:
    values = long(values)
    store_values = struct.pack('!q', values)
    join_values.append(store_values)
print join_values

生成正确的结果:-

['x00x00x00x00x00x00x00x80',
 'x00x00x00x00x00x00x00x00', 
 'x00x00x00x00x00x00x00x00', 
 'x00x00x00x00x00x00x00x00', 
 'x00x00x00x00x00x00x00V', 
 'x00x00x00x00x00x00x00F', 
 'x00x00x00x00x00x00x00|', 
 'xffxffxffxffxffxffxffxa0']

这个结果是正确的,但是有没有办法我可以做一个组合包或做一些事情,以便最后8个字节连接在一起,这样我就可以得到输出:-

x80x00x00x00VF|xa0

那么,您可以使用s[-1]从字符串s中获得最后一个字节。

python2.7有一个名为列表推导的特性,可用于对列表的每个元素执行转换。

最后,join串在一起。

把它们放在一起看起来就像

my_transformed_list = [s[-1] for s in join_values]
concatenated = ''.join(my_transformed_list)

解决这个问题的另一种方法是函数式编程。对列表的每个元素执行转换的行为称为map:

my_transformed_list2 = map(lambda s: s[-1], j)
concatenated2 = ''.join(my_transformed_list2)

最新更新