【Codewars-snail】顺时针打印矩阵(python)

【题目】
给定一个矩阵,顺时针打印该矩阵
【解法】

递归版本

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是一个可迭代的对象,如列表。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值