python unpack中逗号的含义是什么?

时间:2012-12-15 17:12:44

标签: python comma unpack

我们可以简单地使用:

crc = struct.unpack('>i', data)

为什么人们喜欢这样:

(crc,) = struct.unpack('>i', data)

逗号是什么意思?

4 个答案:

答案 0 :(得分:10)

第一个变量返回单元素元组:

In [13]: crc = struct.unpack('>i', '0000')

In [14]: crc
Out[14]: (808464432,)

要获得该值,您必须编写crc[0]

第二个变体解包元组,使您可以编写crc而不是crc[0]

In [15]: (crc,) = struct.unpack('>i', '0000')

In [16]: crc
Out[16]: 808464432

答案 1 :(得分:2)

unpack方法返回一个值元组。使用您描述的语法,可以直接将元组的第一个值加载到变量crc中,而第一个示例具有对整个元组的引用,您必须通过编写crc[1]来访问第一个值稍后在剧本中。

所以基本上如果您只想使用其中一个返回值,可以使用此方法直接将其加载到一个变量中。

答案 2 :(得分:0)

逗号表示crc是元组的一部分。 (有趣的是,它是逗号,而不是括号,表示Python中的元组。)(crc,)是一个包含一个元素的元组。

crc = struct.unpack('>i', data)

使crc成为一个元组。

(crc,) = struct.unpack('>i', data)

crc分配给元组中第一个(也是唯一的)元素的值。

答案 3 :(得分:0)

(crc,)被视为一元组。