【问题标题】:Removing whitespaces in a txt line and adding the values to a list删除 txt 行中的空格并将值添加到列表中
【发布时间】:2020-06-01 23:44:40
【问题描述】:

我有以下来自 .txt 文件的文本行

  0.14999999999999999       0.20000000000000001       0.29999999999999999       0.34999999999999998       0.50000000000000000       0.59999999999999998       0.69999999999999996       0.72999999999999998       0.84999999999999998       0.90000000000000002     \n

我一直面临如何将第一行放入列表的问题。我试过 line.strip() 但只处理了第一个和最后一个空格。还有一些我无法摆脱的空间。如下图:

'0.14999999999999999       0.20000000000000001       0.29999999999999999       0.34999999999999998       0.50000000000000000       0.59999999999999998       0.69999999999999996       0.72999999999999998       0.84999999999999998       0.90000000000000002'

我也不能只用“”替换所有“”,因为所有数字都会被弄皱在一起。我也不能假设空格的数量,也不能假设“。”之前的空格数量,因为我可能有大于或等于 10 的数字。

【问题讨论】:

    标签: python python-3.x list


    【解决方案1】:

    使用re.split

    这里是例子。

    a = '0.14999999999999999       0.20000000000000001       0.29999999999999999       0.34999999999999998       0.50000000000000000       0.59999999999999998       0.69999999999999996       0.72999999999999998       0.84999999999999998       0.90000000000000002'
    
    import re
    output = re.split(' +', a)
    

    输出是

    ['0.14999999999999999',
     '0.20000000000000001',
     '0.29999999999999999',
     '0.34999999999999998',
     '0.50000000000000000',
     '0.59999999999999998',
     '0.69999999999999996',
     '0.72999999999999998',
     '0.84999999999999998',
     '0.90000000000000002'].
    

    如果您希望输出中的每个元素都变为浮点数,请使用map

    output = list(map(float, output))
    

    【讨论】:

      【解决方案2】:

      你甚至不需要re。直接用split就行了。

      ' 1 2  3   4    5 '.split()
      ['1', '2', '3', '4', '5']
      

      【讨论】:

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