ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

剑指offer-顺时针打印矩阵-数组-python

2019-12-15 10:02:44  阅读:212  来源: 互联网

标签:顺时针 matrix offer python 矩阵 元组 printMatrix array 列表


题目描述

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

 

matrix = [[1, 2, 3],
          [4, 5, 6],
          [7, 8, 9]]
''' zip() 函数用于将可迭代的对象作为参数,
将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,
利用* 号操作符,可以将元组解压为列表。
'''

def printMatrix(matrix):
    if matrix:
        top_row = list(matrix[0])
        array = list(zip(*matrix[1:]))
        #<class 'list'>: [(4, 7), (5, 8), (6, 9)]
        array.reverse()
        #将剩下的值逆时针旋转,然后递归
        #<class 'list'>: [(6, 9), (5, 8), (4, 7)]
        return top_row + printMatrix(array)
    else:
        return []  # 保证递归的结束
print(printMatrix(matrix))

标签:顺时针,matrix,offer,python,矩阵,元组,printMatrix,array,列表
来源: https://www.cnblogs.com/ansang/p/12042041.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有