首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使这个python代码输出0 1 4 6

如何使这个python代码输出0 1 4 6
EN

Stack Overflow用户
提问于 2018-11-07 00:58:56
回答 3查看 42关注 0票数 1
代码语言:javascript
复制
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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-11-07 01:10:39

这是因为迭代器正在覆盖实际的变量名,所以这就是为什么它不能工作,所以也许:

代码语言:javascript
复制
for colnum_ in range(colnum):
  matrixfile.writelines("\n"+"\t")
  for rownum_ in range(rownum):
      output = matrix[colnum_][rownum_]
      print(output)

在那部分。

票数 0
EN

Stack Overflow用户

发布于 2018-11-07 01:09:30

在执行for循环时,您将更改变量colnumrownum的值。在您第一次遍历for rownum in range(rownum):之后,rownum被更改为1。

代码语言:javascript
复制
for col in range(colnum):
    matrixfile.writelines("\n"+"\t")
    for row in range(rownum):
        output = matrix[col][row]
        print(output)
票数 0
EN

Stack Overflow用户

发布于 2018-11-07 01:10:05

虽然你的问题有点含糊不清,因为读者不知道你的意图是否是要找出任何一种双重因素。

如果只是为了得到您想要的输出,那么代码非常简单。

代码语言:javascript
复制
from itertools import chain
matrix=[2,2,[0,1],[4,6]]        
print(list(chain(*matrix[2:4])))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53182302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档