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 只有在那里设置代码并且不能在我的项目中使用。 实际上,印刷品也可用于设置问题 将字节作为套接字发送。
最初我有几次在阵列中有这个,但是当我转换了 数组到bytearray,我一直在运行,混入0x00。 与struct相同,你可以在我的解决方案中看到删除 最后是0x00。
答案 0 :(得分:0)
这是一种更简单的方法。从问题中不清楚这是否正是你想要的结果。
values = [varA[name]['value'] for name in 'ZYXWV']
varC = struct.pack('>'+str(len(values))+'h', *values)