2013-12-09 39 views

回答

6

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')] 

如果t他對你並不明顯,你應該在教程中閱讀ListsMore on ListsTuples and Sequences

0

你也許可以做到這一點:

a = a[0]

+0

這已經是一個浮動;這是通過在'struct.unpack'中使用''f''格式字符來保證的。所以調用'float'並沒有什麼用處。 – abarnert

+0

好的,但是'a = a [0]'也是。你可能還會寫'a = float(a [int(0)]' – abarnert

+0

哦,你是對的,謝謝,我誤解了你的意思。 – Totem