Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何获取整数数组并将其转换为其他类型?_Python_Arrays_Python 2.7 - Fatal编程技术网

Python 如何获取整数数组并将其转换为其他类型?

Python 如何获取整数数组并将其转换为其他类型?,python,arrays,python-2.7,Python,Arrays,Python 2.7,我目前正在尝试获取实际表示其他数据类型的整数数组,并将它们转换为正确的数据类型 例如,如果我有整数数组[1196773188,542327116],我发现这个整数数组表示来自其他函数的字符串,将其转换,并实现它表示字符串DOUGLAS。第一个数字转换为十六进制数字0x47554F44,第二个数字表示十六进制数字0x2053414C。使用十六进制到字符串转换器,它们分别对应于字符串'GOUD'和'SAL',以一种小小的endian方式拼写DOUGLAS。在数组的各个元素中字母向后的方式很可能源于以

我目前正在尝试获取实际表示其他数据类型的整数数组,并将它们转换为正确的数据类型

例如,如果我有整数数组[1196773188,542327116],我发现这个整数数组表示来自其他函数的字符串,将其转换,并实现它表示字符串DOUGLAS。第一个数字转换为十六进制数字0x47554F44,第二个数字表示十六进制数字0x2053414C。使用十六进制到字符串转换器,它们分别对应于字符串'GOUD'和'SAL',以一种小小的endian方式拼写DOUGLAS。在数组的各个元素中字母向后的方式很可能源于以一种略尾端的方式存储的字节,尽管我可能在这一点上弄错了

这些整数数组可以表示许多数据类型,包括字符串、布尔值和浮点值

我需要使用Python2.7,所以很遗憾我不能使用bytes函数


有没有一种简单的方法可以将整数数组转换为相应的数据类型?

在不同类型之间进行转换时,结构模块似乎是最好的方法,如下所示:

import struct    

bufferstr = ""
dougarray = [1196773188, 542327116]
for num in dougarray:
    bufferstr += struct.pack("i", num)

print bufferstr # Result is 'DOUGLAS'
从这一点开始,我们可以使用struct.unpack轻松地将“DOUGLAS”转换为我们想要的任何数据类型:

print struct.unpack("f", bufferstr[0:4]) # Result is (54607.265625)

然而,我们一次只能解压一定数量的字节。谢谢大家的建议

这个整数列表应该以什么方式表示道格拉斯?字符串和整数列表之间没有自然的默认对应关系。最有可能的是,执行此转换需要一些您没有告诉我们的信息,您可能没有费心保存这些信息,在这种情况下,这是一个丢失的原因。1看起来您有一个列表:type[1196773188,542327116]->第二种将一段数据转换为另一段数据的方法是使用一些规则/流程来转换它。如果您知道[1196773188,542327116]如何转换为DOUGLAS的规则,我会假设相同的转换过程也适用于其他数据。虽然我没有真正看到相关性。编辑以解释整数转换为Douglast的原因请查看模块,该模块提供了在二进制数据和其他数据类型之间转换的工具。您想知道如何进行转换或如何确定相应的数据类型吗?