繁体   English   中英

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

[英]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循环时,您正在更改变量colnumrownum的值。 在遍历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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM