【问题标题】:Convert comma separated string of floats into list?将逗号分隔的浮点数字符串转换为列表?
【发布时间】:2016-02-17 07:40:37
【问题描述】:

我需要定义一个函数txtnum(L),它以逗号分隔的浮点数字符串(例如"1.5,2.5,3.5")作为参数,并将其转换为列表[1.5, 2.5, 3.5]

我尝试使用.split().join()map() 等,但无法返回不包含引号的列表。我对 Python 很陌生,在这里有点迷路。

我该怎么做呢?

【问题讨论】:

    标签: python string list


    【解决方案1】:

    1.5,2.5,3.5 在 Python 中是一个有效的 tuple 文字(不带括号,是的,但没关系),因此您可以在其上使用 ast.literal_eval

    In [1]: import ast
    
    In [2]: s = '1.5,2.5,3.5'
    
    In [3]: ast.literal_eval(s)
    Out[3]: (1.5, 2.5, 3.5)
    

    如果你真的需要一份清单,那也很简单:

    In [4]: list(ast.literal_eval(s))
    Out[4]: [1.5, 2.5, 3.5]
    

    【讨论】:

      【解决方案2】:

      您需要转换拆分后的 vars 的数据类型,因为单独拆分字符串会给您一个字符串列表。

      >>> s = "1.5,2.5,3.5"
      >>> [float(i) for i in s.split(',')]
      [1.5, 2.5, 3.5]
      >>> 
      

      >>> map(float, s.split(','))
      [1.5, 2.5, 3.5]
      

      【讨论】:

        【解决方案3】:

        试试这个:

        s = "1.5,2.5,3.5"
        strArr = s.split(',')
        import numpy as np
        x = np.array(strArr, dtype='|S4')
        arrFloat = x.astype(np.float)
        print arrFloat
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-02-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多