我如何使此python代码输出0 1 4 6

时间:2018-11-07 00:58:57

标签: python

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

3 个答案:

答案 0 :(得分:0)

进行for循环时,将更改变量colnumrownum的值。第一次遍历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)

那部分。