【发布时间】:2015-11-05 09:11:17
【问题描述】:
我有一个这样的字符串:
'5100387, 54.799831647418, -4.147024550067, 22.466648807633'
我想从中得到一个元组:
(5100387, 54.799831647418, -4.147024550067, 22.466648807633)
怎么做?
【问题讨论】:
标签: python
我有一个这样的字符串:
'5100387, 54.799831647418, -4.147024550067, 22.466648807633'
我想从中得到一个元组:
(5100387, 54.799831647418, -4.147024550067, 22.466648807633)
怎么做?
【问题讨论】:
标签: python
您可以使用逗号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)
【讨论】:
您的字符串包含有效的元组文字。你可以试试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)
【讨论】: