首页 > 解决方案 > 导入文本文件并连续拆分值,然后将每组值分配给一个元组,然后将所有元组放在一个列表中

问题描述

我对python还是比较陌生。

我正在尝试将文本文件导入列表。我需要将每一行包含在一个元组中,并将值拆分 一行的示例如下所示:1.2 1.7 1.9 2.0 然后代码需要处理不同的维度。我所追求的是这样的:[(1.2,1.4,1.6,2.0),...]

到目前为止,我已经设法将所有值分配给一个元组,每一行代表一个值。但几个小时后,我无法再进一步了。

我到目前为止的代码是:

def data_import(x):
  data_file = []
  with open(x) as datax:
      lines = datax.readlines()
      lines = [line.rstrip() for line in lines]
      lines = [lines.split(" ",1) for line in lines]
      data_file.append(tuple(lines))
  return data_file
    

这行代码抛出属性错误:“列表对象没有属性拆分”。这是我添加 lines.split() 的时候。

从这里我一直卡住,任何帮助将不胜感激。

标签: python

解决方案


我猜不是:

    lines = [lines.split(" ", 1) for line in lines]

尝试:

    lines = [line.split(" ", 1) for line in lines]

您需要按迭代器而不是完整列表进行拆分。

完整代码:

def data_import(x):
  data_file = []
  with open(x) as datax:
      lines = datax.readlines()
      lines = [line.rstrip() for line in lines]
      lines = [tuple(map(float, lines.split(" "))) for line in lines]
      data_file.extend([lines)
  return data_file

推荐阅读