Python 将数字字符串转换为数字元组

Python 将数字字符串转换为数字元组,python,Python,我有这样一个字符串: '5100387, 54.799831647418, -4.147024550067, 22.466648807633' 我想从中得到一个元组: (5100387, 54.799831647418, -4.147024550067, 22.466648807633) 如何操作?您可以在逗号上拆分并使用生成器表达式将每个项转换为浮点值,然后从中创建一个元组 >>> tuple(float(i) for i in s.split(',')) (

我有这样一个字符串:

'5100387,  54.799831647418,  -4.147024550067,  22.466648807633'
我想从中得到一个元组:

(5100387,  54.799831647418,  -4.147024550067,  22.466648807633)

如何操作?

您可以在逗号上拆分
并使用生成器表达式将每个项转换为
浮点值
,然后从中创建一个
元组

>>> tuple(float(i) for i in s.split(','))
(5100387.0, 54.799831647418, -4.147024550067, 22.466648807633)
同样地,
map
也可以做同样的事情

>>> tuple(map(float, s.split(',')))
(5100387.0, 54.799831647418, -4.147024550067, 22.466648807633)

字符串包含有效的元组文字。你可以试试:

或按“
”、“
拆分,并将列表中的每个元素转换为浮点(或其他形式):

另请参见和文档。
In [1]: import ast

In [2]: ast.literal_eval('5100387, 54.799831647418, -4.147024550067, 22.466648807633')
Out[2]: (5100387, 54.799831647418, -4.147024550067, 22.466648807633)
In [4]: tuple(map(float, s.split(', ')))
Out[4]: (5100387.0, 54.799831647418, -4.147024550067, 22.466648807633)