我有一个程序返回数字结果的数字(目前为 6 个),将它们转换为字符串,然后连接它们以通过 ZMQ 发送。
示例输出是:
结果:7.85、-5.75、16.0、0.0、0.84375、0.828125
7.85-5.7516.00.00.843750.828125
结果:5.25、-10.72、8.5、0.0、0.752、0.8265
5.25-10.728.50.00.7520.8265
通过 ZMQ 接收到这个字符串后,我需要再次将它拆分。
为了完成这项工作,我认为指定字符串的长度是最简单的方法,所以我总是知道每个答案都有 x 个字符,然后我可以在最后使用 stringsplit 来获得我的个人答案结果。
问题是我不知道该怎么做。我知道如何指定小数位数,但是当我有单位/双位数整数时,有时带有 - 符号,我会有点卡住...
谢谢
请您参考如下方法:
这里有一些代码演示了我在评论中推荐的方法。
这是您程序的结果列表(如果它们还没有出现在列表中,请将它们放在一个列表中):
>>> nums = [1,2,3,4,5,6]
现在我们使用 map(str,nums) 将每个数字转换为字符串,并通过调用 .join() 将它们用逗号连接在一起> 字符串文字的方法 ',':
>>> mystr = ','.join(map(str,nums))
>>> mystr
'1,2,3,4,5,6'
调用 map(str,nums) 意味着“将函数 str(将事物转换为字符串)应用于数组 nums< 的每个元素 并将结果存储在一个数组中。” map 是一种功能强大的函数式编程习惯用法,您可以使用它来大大缩短代码(请参阅 Wikipedia)。
最后,您在字符串上使用 split 方法在出现逗号时将其分开,并使用 map(float,-) 将字符串转换回 float :
>>> map(float,mystr.split(','))
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
