从包含数字的文件生成二维列表的函数
写一个叫做 table() 的函数,这个函数需要两个参数:一个是表示文件名的字符串,另一个是一个数字 n。这个函数要打开并读取对应文件的内容。文件里会有一行,里面正好有 n*n 个数字,这些数字之间用空格隔开。函数 table() 要创建并返回一个 n x n 的二维列表,里面包含这些 n*n 个数字,具体格式是:第一行放前 n 个数字,第二行放接下来的 n 个数字,依此类推,直到第 n 行。下面是当在 data1.txt 和 data2.txt 文件上运行 table() 时应该显示的内容。
table('data1.txt', 3)
[['3', '4', '5'], ['6', '7', '8'], ['9', '10', '11']]
table('data2.txt', 4)
[['3', '4', '5', '6'], ['7', '8', '9', '10'], ['11', '12', '13', '14'], ['15', '16', '17', '18']]
显然这是一个作业问题,所以不要给答案,只给一些提示,帮我入门。我完全不知道从哪里开始。
3 个回答
指针:创建一个大小为 n*n 的矩阵,使用两个嵌套的 for 循环,从 0
到 n-1
,依次读取每个元素到 [i][j]
中,其中 i
是外层循环的计数器,j
是内层循环的计数器。
首先,这个页面介绍了一些< a href="http://docs.python.org/tutorial/inputoutput.html" rel="nofollow">读取文件的方法。当你读取文件中的一行时,你会得到一个字符串。可以查看一下字符串的方法,这些方法可以帮助你轻松地把这个字符串分成n个部分。最后,你还需要了解一下如何操作列表,这个教程会对你有帮助。
我猜你说的“没有答案”是指没有代码吧。
- 打开文件。
- 读取命令行参数(
n
)。 - 创建一个列表(
x
)。 - 进入一个循环,执行
n
次。- 从文件中读取
n
条数据到另一个列表(y
)(可能会有一个子循环)。 - 把列表
y
添加到列表x
中。
- 从文件中读取
把事情分解成一个个小目标,通常会让任务变得更简单。