Pyserial:如何编写和读取float列表

时间:2014-02-04 11:32:30

标签: python type-conversion pyserial

我有一个浮动列表:

[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]'

我的问题:要映射的代码是什么?

所以现在我们可以写或读这个东西,然后再映射回浮动列表。

1 个答案:

答案 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]
>>>

请告诉我这不是答案。