我有一个包含两个元素的数组:第一个是类型,第二个是我需要转换的数据数组。
[['string','int32','string','int64','float32','string','string'],['any string','19','any string','198732132451654654','0.6','any string','any string']]
我知道如何将整数转换为二进制,但是在上面的多种类型的数组中,如何将其转换为二进制?
最佳答案
这是一个好方法:
data = [['string','int32','string','int64','float32','string','string'],
['any string','19','any string','198732132451654654','0.6',
'any string','any string']]
type_map = {'string': str, 'int32': int, 'int64': long, 'float32': float}
results = [type_map[t](d) for t, d in zip(data[0], data[1])]
print results
结果:
['any string', 19, 'any string', 198732132451654654L, 0.6, 'any string', 'any string']
这通过使用类型字符串作为第一个列表中每个项目的键在 type_map
字典中查找转换函数来创建结果列表,然后使用来自的相应数据项调用它第二个 list 。可以使用名为 list comprehension 的东西在列表声明中使用 for
循环创建列表。 。此处使用 zip
函数为循环的每次迭代从每个子列表创建值对。
关于python - 如何在Python中将多种类型的列表转换为二进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11979931/