我正在尝试拆分在文本文件中排列的数字列表:
1 2
3 4
7 9
我能得到的最接近的是:
for line in infile:
nums = line.split()[0]
print(nums)
但是这只会返回第一列...我还能在这里做些什么来确保数字由空格和新行分隔?
答案 0 :(得分:1)
您是希望将所有数字作为一个列表还是列表列表?
由于split,默认情况下会将任意数量的空白视为分隔符,对于一个列表,只需执行
infile.split()
对于列表列表,其中每个列表是一行上的数字列表,请执行
[x.split() for x in infile.split('\n') if x != '']
这会按换行符('\ n')拆分文件,然后取每一行,如果它不为空(x!=''),则将其拆分。
例如,对于一个名为'test'的文件,
open('test').read().split()
>>> ['1', '2', '3', '4', '7', '9']
[ int(x) for x in open('test').read().split() ] # convert to integers
>>> [1, 2, 3, 4, 7, 9]
[ x.split() for x in open('test').read().split('\n') if x != '' ]
>>> [['1', '2'], ['3', '4'], ['7', '9']]
等等......
答案 1 :(得分:1)
data.txt中:
1 2
3 4
5 6
代码:
numbers = []
for line in open("data.txt").readlines():
numbers.extend([int(n) for n in line.split()])
print(numbers)
输出:
[1, 2, 3, 4, 5, 6]