利用转置+反转来实现顺时针旋转功能,emmm真有趣
我的答案
1 | class Solution: |
总结:
这题主要有两种方法,一种是zip库的使用,另外一种就是寻找转换的规则。此处总结一下zip的使用,本题主要是用zip实现列表的转置,然后再对转置后的列表进行反转达到旋转效果。
1.zip使用
1 | a= [1,2,3] |
zip()函数起一个打包的作用,按照其参数中最短的参数进行匹配
详情可参考:http://www.runoob.com/python/python-func-zip.html
2.利用切片赋值反转
切片反转的使用很简单,list[::-1],但是本题的要求是不产生额外的空间,因此就使用了切片赋值的概念来实现
切片赋值与直接创建引用赋值不一样,切片赋值会赋值多一块内存地址,相当于较深拷贝(copy())
深拷贝(deepcopy)和较深拷贝(copy)最大的区别在于会不会把第二层可变对象中的内存地址拷贝过来。其中深拷贝会全部拷贝,但是较深拷贝不会