缘由
《算法4th》中用的StdIn的readInt()可以逐个读取整数,想要用python实现这样的方法。
数据格式:tinyUF.txt
10
0 1
2 3
4 5
6 7
8 9
第一行的10,表示有十个整数。 需将每一行,例如第二行的0,1分别放入列表p,q。
分析
- 若使用eval,暂且不考虑能不能正确提取第二行的两个整数,假设可以正确提取到,但是将0,1分别存储到p,q时,需要使用列表切片。
- 使用列表迭代,将迭代结果一次压入p,q中。
跳过首行
采用第二种方法,但存在问题:首行迭代报错(因为只有一个整数),所以就要跳过首行再迭代。
跳过首行读取技巧:不使用readlines(),而是readline()
file = open("tinyUF.txt", "r")
first_row = file.readline() # line指针已经指向下一行
x = []
y = []
for line in file:
nums = iter(line.split(" "))
x.append(nums.__next__().strip())
y.append(nums.__next__().strip())