从包含数字的文件生成二维列表的函数

1 投票
3 回答
532 浏览
提问于 2025-04-16 12:15

写一个叫做 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 个回答

0

指针:创建一个大小为 n*n 的矩阵,使用两个嵌套的 for 循环,从 0n-1,依次读取每个元素到 [i][j] 中,其中 i 是外层循环的计数器,j 是内层循环的计数器。

1

首先,这个页面介绍了一些< a href="http://docs.python.org/tutorial/inputoutput.html" rel="nofollow">读取文件的方法。当你读取文件中的一行时,你会得到一个字符串。可以查看一下字符串的方法,这些方法可以帮助你轻松地把这个字符串分成n个部分。最后,你还需要了解一下如何操作列表,这个教程会对你有帮助

2

我猜你说的“没有答案”是指没有代码吧。

  • 打开文件。
  • 读取命令行参数(n)。
  • 创建一个列表(x)。
  • 进入一个循环,执行n次。
    • 从文件中读取n条数据到另一个列表(y)(可能会有一个子循环)。
    • 把列表y添加到列表x中。

把事情分解成一个个小目标,通常会让任务变得更简单。

撰写回答