Python的结构与大名单
问题描述:
我试着将我很长的整数列表保险业监督二进制数组(列表) 进出口使用struct.pack()和它的作品很好,但我认为这是非常难看:Python的结构与大名单
buf = pack(">IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII", *data)
我需要这样做,因为我的列表中有113个大小值不等的项目。是否有一个选项可以使用pack()而不用113的“I”?
答
如果你乘以一个整数的字符串,该字符串会重复多次。例如:
>>> 'foo'*3
'foofoofoo'
所以,你可以使用:
buf = pack(">" + "I"*len(data), *data)
这是更优雅和安全以及:如果对象改变的数量,这将只是继续工作。