下面的代码有效。但是,我不能重新创建它/不理解它。有人可以帮助编写所有行来完成代码。
value = #something
var1, var2 = unpack("b8s",value)
这意味着,这里有一个值被放入两个变量中。有人可以举个例子,它有可能吗? 非常感谢提前。
答案 0 :(得分:4)
你通过完全循环来复杂化它。
var1, var2 = tuple
这只是你可以在python中做的语法。请注意,您必须解压缩整个元组;左侧的变量数必须等于元组中的值数。
实施例
myTuple = ("hi","i","am","tuple")
first,second,third,fourth = myTuple
print first
>>hi
print second
>>i
print third
>>am
print fourth
>>tuple
不允许
myTuple = ("hi","i","am","tuple")
first,second = myTuple
>>Exception
答案 1 :(得分:2)
unpack
方法来自struct
模块,它允许您将Python字符串视为压缩二进制数据。 unpack('b8s', value)
调用告诉unpack
将value
视为包含一个无符号字符(using 'b'
)的二进制字符串,将其作为char的整数值解压缩,然后通过char[8]
(使用'8s'
),表示长度为8的char
字符串。它将作为Python字符串解压缩。所以一个完整的例子看起来像这样:
>>> from struct import unpack
>>> s = "abcdefgty"
>>> int_char, my_str = unpack("b8s", s)
>>> print int_char
97 # 97 is the ascii code of 'a'
>>> print my_str
bcdefgty
答案 2 :(得分:0)
如果你有一个元组
t = (1, 2, "a")
你可以像这样解压缩它:
a, b, c = t
print "a=", a
打印
a = 1
答案 3 :(得分:0)
正在发生的事情是:unpack
处理elem
的内容并返回包含2个项目的元组。每个项目都分配给一个不同的变量。
它是一样的:
unpacked_value = unpack("b8s",elem)
var1 = unpacked_value[0]
var2 = unpacked_value[1]
使用diffentd值和变量:
my_tuple = (1, 2)
var1, var2 = my_tuple
print var1 #outputs 1
print var2 #outputs 2