我有一个这样的字符串:
'5100387, 54.799831647418, -4.147024550067, 22.466648807633'
我想从中得到一个元组:
(5100387, 54.799831647418, -4.147024550067, 22.466648807633)
怎么做?
答案 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)