我有一个浮动列表:
[0, 0, 0.8125, 0.2421875, -0.939453125, 0.60888671875, 0.3944091796875]
但ser.write(...)
和ser.read(...)
可以使用字符串数据
我想我必须将float列表映射到float的列表字符串。
像这样:'[0, 0, 0.8125, 0.2421875, -0.939453125, 0.60888671875, 0.3944091796875]'
我的问题:要映射的代码是什么?
所以现在我们可以写或读这个东西,然后再映射回浮动列表。
答案 0 :(得分:1)
所以,你的意思是将所有浮动转换为字符串:
>>> map(lambda x: str(x), s)
['0', '0', '0.8125', '0.2421875', '-0.939453125', '0.60888671875', '0.394409179688']
>>>
OR
>>> s = [0, 0, 0.8125, 0.2421875, -0.939453125, 0.60888671875, 0.3944091796875]
>>> string_float = [ str(x) for x in s]
>>> string_float
['0', '0', '0.8125', '0.2421875', '-0.939453125', '0.60888671875', '0.394409179688']
>>>
如果您想将整个列表转换为字符串,请执行以下操作:
>>> s = [0, 0, 0.8125, 0.2421875, -0.939453125, 0.60888671875, 0.3944091796875]
>>> str(s)
'[0, 0, 0.8125, 0.2421875, -0.939453125, 0.60888671875, 0.3944091796875]'
>>>
转回来:
>>> s = [0, 0, 0.8125, 0.2421875, -0.939453125, 0.60888671875, 0.3944091796875]
>>> type(s)
<type 'list'>
>>> string = str(s)
>>> type(string)
<type 'str'>
>>> import ast
>>> original = ast.literal_eval(string)
>>> type(original)
<type 'list'>
>>> original
[0, 0, 0.8125, 0.2421875, -0.939453125, 0.60888671875, 0.3944091796875]
>>>
请告诉我这不是答案。