【题目】
给定一个矩阵,顺时针打印该矩阵
【解法】
递归版本
def snail(array):
return list(array[0]) + snail(zip(*array[1:])[::-1]) if array else []
非递归版本
def snail(array):
a = []
while array:
a.extend(list(array.pop(0)))
array = zip(*array)
array.reverse()
return a
最近发现自己对于zip函数的用法还是掌握的不好,在这里也记录一下zip函数吧。目前还是只是出于知道这个函数表示的是什么意思,但是不能在需要用的时候想起来。
这个链接对zip函数的用法讲解感觉比较详细:
http://www.cnblogs.com/BeginMan/archive/2013/03/14/2959447.html
感觉zip在进行矩阵转置的时候用的很多,这里也就顺便贴一下矩阵转置的代码。
【题目】
矩阵转置
【解法】
def Matrix_zhuan(array):
return map(list,zip(*array))
这里还有map函数,也借此复习一下map函数的用法。map(function,sequence)其中,function是函数功能,可以是自己定义的也可以是系统自带的,sequence是一个可迭代的对象,如列表。