【问题标题】:Converting string of numbers to tuple of numbers [duplicate]将数字字符串转换为数字元组[重复]
【发布时间】:2015-11-05 09:11:17
【问题描述】:

我有一个这样的字符串:

'5100387,  54.799831647418,  -4.147024550067,  22.466648807633'

我想从中得到一个元组:

(5100387,  54.799831647418,  -4.147024550067,  22.466648807633)

怎么做?

【问题讨论】:

标签: python


【解决方案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)

【讨论】:

    【解决方案2】:

    您的字符串包含有效的元组文字。你可以试试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)
    

    【讨论】:

      猜你喜欢
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      相关资源
      最近更新 更多