Python 2.7.6 优化将大端字节打包成字符串的代码

Python 2.7.6 Optimizing code for packing big endian bytes into a string

import struct

    varA['Z']['value'] = 8700
    varA['Y']['value'] = 8800
    varA['X']['value'] = 8900
    varA['W']['value'] = 8800
    varA['V']['value'] = 8700
    varB = ""
    varC = ""
    for name in 'Z Y X W V'.split(' '):
     varB = C[name]['value']
     varC += str(struct.pack('>h',varB))
    print varC[:-1] + '\n'

我需要的是一串字节, 其中每个数字都是带符号的 int16 big-endian 字节。

这里的代码适用于我想做的事情,但我知道 有一个更优雅的解决方案。

我不会花任何时间优化 varA 因为它 只在那里设置代码,不会在我的项目中使用。 印刷品也在那里设置问题,我实际上 将字节作为套接字发送。

最初几次我把它放在一个数组中,但是当我转换 array 到 bytearray,我保持 运行 混合了 0x00。 与结构相同,正如您在我的解决方案中看到的那样删除了 0x00 最后。

这是一种更简单的方法。从问题中不清楚这是否正是您想要的结果。

values = [varA[name]['value'] for name in 'ZYXWV']
varC = struct.pack('>'+str(len(values))+'h', *values)