zoukankan      html  css  js  c++  java
  • Python使用单个循环遍历二维数组

    通常情况下,在Python中遍历二维列表,常用的方法是两个for的嵌套,然而在操作过程中会发现一个问题,如果想要跳出两层循环会显得较为麻烦。

    numList = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    for i in numList:
        for each in i:
            print(each, end=' ')
        print()
    

    输出结果:

    1 2 3 
    4 5 6 
    7 8 9 
    

    跳出两层循环,几种常见方法如封装成函数用return,设立标志变量,自定义异常......
    如果能把一些简单的嵌套循环,修改为只使用一个循环即可完成的代码,则在某些情况下会使操作方便许多,以下尝试用一个while循环遍历二维列表:

    numList = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
    i = j = 0
    
    #如果将该二维列表比作4行3列的表格...
    while numList[i][j] != 5: #自行定义跳出条件
    
        #记录当前所在行并判断是否前进到下一行,依据是当前列是否到达该行的结尾
        i = (i if j != len(numList[i])-1 else i+1)
    
        #记录当前所在列并判断是继续前进还是回到列头,依据同样是是否到达该行的结尾
        j = (j+1 if j != len(numList[i])-1 else 0) 
    
        print(numList[i][j], end=' ')
    

    输出结果为:

    2 3 4 5
    

    如果这样写,既能自定义前进方式,又能简单的通过break,continue之类的关键字来控制循环,整个操作就比较灵活方便。而需要注意的点就是在进行判断时掌握好判断逻辑,避免出现bug。根据需要,对代码进行修改,还能达到三维,四维...的遍历。


    以上是个人根据平时总结的一些方法和技巧,若有疏漏或更好的建议,非常欢迎对此作出评论或提出意见,这样对我也会有很大的帮助!

  • 相关阅读:
    Android logcat命令详解
    使用Dom4j操作XML
    最全面的常用正则表达式大全
    struts.xml配置文件(package,namespace,action)
    ActiveMQ入门实例
    Windows Intel VT-x开启
    Java ArrayList的不同排序方法
    Hibernate面试问题集锦: 概述
    10个有关String的面试问题
    50道Java线程面试题
  • 原文地址:https://www.cnblogs.com/minstrel-MH/p/12674800.html
Copyright © 2011-2022 走看看