所以我想打包一个元组列表,然后再解压缩。
from struct import *
from itertools import chain
a = [(1, 67), (213, 455), (9009, 8887)]
# converts 3x2 list to 6x1 list
b = list(chain(*a))
size=6
qq = pack('h'+'L'*size,size,*b)
# peak to get the list length
mysize = unpack('h',qq[:2])
mysize = mysize[0]
unpack('L',qq[2:6])
unpack('h'+'L'*mysize,qq)
unpack('L'*mysize, qq[2:]) # does not work
unpack('L'*mysize, qq[2:2+mysize*4]) # works
使用Python 2.7,倒数第二行不起作用。当我期待26岁的时候,我测试了len(qq)
,即28岁。
答案 0 :(得分:1)
根据docs:
C类型以机器的本机格式和字节顺序表示,并在必要时通过跳过填充字节(根据C编译器使用的规则)正确对齐。
由于您在64位计算机上运行,因此较小的类型(如dataGrid[0].ItemSource = table[0].DefaultView;
dataGrid[1].ItemSource = table[1].DefaultView;
和h
)将填充为8个字节。您可以使用格式化标志L
来删除填充。例如,添加" ="作品
=, <, >, !