Python中的文件输入和输出,剥离空间并输出到列表

Python中的文件输入和输出,剥离空间并输出到列表,python,Python,我正在用python编写一个程序,从“var_input”文件中获取5行输入,并将其输入到一个列表中,然后首先或第二次将每个单独的数字输入到列表中 我只是想知道最好的办法是将每个数字之间的空格分开,然后将其先或后添加到列表中。我正在考虑使用python的split方法,但我不确定如何做到这一点 输入文件中的数据如下所示 18 24 10 5 101 567 234 90 107 4567 第一个应该包含['18','10','101','234','107'] 第

我正在用python编写一个程序,从“var_input”文件中获取5行输入,并将其输入到一个列表中,然后首先或第二次将每个单独的数字输入到列表中

我只是想知道最好的办法是将每个数字之间的空格分开,然后将其先或后添加到列表中。我正在考虑使用python的split方法,但我不确定如何做到这一点

输入文件中的数据如下所示

18 24               
10 5
101 567
234 90
107 4567
第一个应该包含
['18','10','101','234','107']

第二个应该包含
['24','5','567','90','4567']

这是我到目前为止所拥有的

first = []
second = []

file_input = open('var_input')
input_list = file_input.readlines()

非常感谢您,如果您有任何帮助,我们将不胜感激

您可以使用
zip
split

with open('var_input') as file_input:
    input_list = file_input.readlines()
first, second = zip(*[l[:-1].split() for l in input_list])
它的工作原理-
[l[:-1].split()表示输入列表中的l]
是一种列表理解,它将
split
方法应用于每一行,使其看起来像:

[["18", "24"], ["10", "5"], ["101", "567"], ["234", "90"], ["107", "4567"]]
zip
是一个将多个列表压缩在一起的函数(当与
*
一起给出时,它将输入列表中的每个项目视为一个单独的参数)。它通过获取每个列表的第一个项目,然后是每个列表的第二个项目(如果每行上有三个或更多项目,则最终会有三个或更多输出列表)来“拉链”它。结果看起来像

[('18', '10', '101', '234', '107'), ('24', '5', '567', '90', '4567')]

这可能看起来很愚蠢,但它很简单而且有效。

我建议使用带有open('var_input')的
作为文件输入:
让python处理清理过程。@Fred:我认为这是个好主意(已更改),我只是不想引入太多的更改来混淆OP。值得注意的是,在Python中处理文件时,最好使用。
first = []
second = []

with open('var_input') as fp:
    for line in fp:
        temp = line.split()
        first.append(temp[0])
        second.append(temp[1])