[英]How do I make this python code output 0 1 4 6
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
在执行for循环时,您正在更改变量colnum
和rownum
的值。 在遍历for rownum in range(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)
尽管您的问题有点含糊,因为读者不知道您的意图是否是任何双重要素。
如果只是为了获得所需的输出,则代码非常简单
from itertools import chain
matrix=[2,2,[0,1],[4,6]]
print(list(chain(*matrix[2:4])))
这是因为迭代器正在覆盖实际的变量名,所以这就是为什么它不起作用的原因,所以也许:
for colnum_ in range(colnum):
matrixfile.writelines("\n"+"\t")
for rownum_ in range(rownum):
output = matrix[colnum_][rownum_]
print(output)
对于那部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.