print(matrix)
#matrix is [2,2,[0,1],[4,6]]
matrix = list(matrix)
rownum = matrix[0]
colnum = matrix[1]
del matrix[1], matrix[0]
print(colnum)
print(rownum)
print(matrix)
#matrix is now [[0,1], [4,6]]
matrixfile = open(outfilehandle, "w")
matrixfile.write(name)
for colnum in range(colnum):
matrixfile.writelines("\n"+"\t")
for rownum in range(rownum):
output = matrix[colnum][rownum]
print(output)
#output is: 0 1 4
以上是我想输出为矩阵的函数。忽略编写代码,因为我只是想在写入文件之前获得正确的输出。当前输出似乎缺少矩阵列表中的最后一个值。我希望它输出:0 1 4 6但它只输出:0 1 4
答案 0 :(得分:0)
进行for循环时,将更改变量colnum
和rownum
的值。第一次遍历for rownum in range(rownum):
后,rownum
已更改为1。您应该为索引使用不同的变量,例如:
for col in range(colnum):
matrixfile.writelines("\n"+"\t")
for row in range(rownum):
output = matrix[col][row]
print(output)
答案 1 :(得分:0)
尽管您的问题有点含糊不清,因为读者不知道您的意图是否是任何双重因素。.
如果只是为了获得所需的输出,则代码非常简单
from itertools import chain
matrix=[2,2,[0,1],[4,6]]
print(list(chain(*matrix[2:4])))
答案 2 :(得分:0)
这是因为迭代器正在覆盖实际的变量名,所以这就是为什么它不起作用的原因,所以也许:
for colnum_ in range(colnum):
matrixfile.writelines("\n"+"\t")
for rownum_ in range(rownum):
output = matrix[colnum_][rownum_]
print(output)
那部分。