Python 具有大列表的结构

Python struct with large list

我正在尝试将我的非常长的整数列表转换为二进制数组(列表) 我正在使用 struct.pack() 并且效果很好,但我认为这非常难看:

buf = pack(">IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII", *data)

我需要这样做,因为我的列表有 113 个具有大小值的项目。是否可以选择在没有 113 "I" 的情况下将 pack() 与长列表一起使用?

如果您将一个字符串与一个整数相乘,则该字符串会重复多次。例如:

>>> 'foo'*3
'foofoofoo'

所以你可以使用:

buf = pack(">" + "I"*len(data), *data)

这也更优雅和安全:如果对象数量发生变化,这将继续工作。