struct.unpack
总是返回一个元组,因为您可以解压多个值,而不仅仅是一个。
元组是一个序列,就像列表或任何其他类型的序列一样。因此,您可以对其进行索引:
>>> a = struct.unpack('f', 'helo')
>>> b = a[0]
>>> b
7.316105495173273e+28
…或者使用赋值解包:
>>> b, = a
>>> b
7.316105495173273e+28
...或者循环它:
>>> for b in a:
... print(b)
7.316105495173273e+28
当然,您可以将其中任何一个组合成一行:
>>> b = struct.unpack('f', 'helo')[0]
>>> b, = struct.unpack('f', 'helo')
>>> c = [b*b for b in struct.unpack('f', 'helo')]
如果这对您来说不明显,您应该阅读Lists http://docs.python.org/3.3/tutorial/introduction.html#lists, 更多关于列表的内容 http://docs.python.org/3.3/tutorial/datastructures.html#more-on-lists, and 元组和序列 http://docs.python.org/3.3/tutorial/datastructures.html#tuples-and-sequences在教程中。