将数字串转换为数字元组

时间:2015-08-12 16:23:16

标签: python

我有一个这样的字符串:

'5100387,  54.799831647418,  -4.147024550067,  22.466648807633'

我想从中得到一个元组:

(5100387,  54.799831647418,  -4.147024550067,  22.466648807633)

怎么做?

2 个答案:

答案 0 :(得分:1)

您可以在逗号上split并使用生成器表达式将每个项目转换为float,然后从中创建tuple

>>> 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)

答案 1 :(得分:1)

您的字符串包含有效的元组文字。您可以尝试ast.literal_eval

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)