如何实现Python中二维列表的转置和旋转及其基本应用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计273个文字,预计阅读时间需要2分钟。
给一个矩阵,按照顺时针旋转90度输出其元素,例如:对于矩阵:\[ \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} \]输出应为:\[ 1, 2, 3, 6, 9, 8, 7, 4, 5 \]
def transpose(matrix): return zip(*matrix)
def rotate(matrix): return transpose(matrix)[::-1]
给一个矩阵,顺时针旋转顺序输出其元素,例如:
对于矩阵:
[ 1, 2, 3 ]
[ 4, 5, 6 ]
[ 7, 8, 9 ]
输出为:
1,2,3,6,9,8,7,4,5
def transpose(matrix):return zip(*matrix)
def rotate(matrix):
return zip(*matrix)[::-1]
def rotatePrint(matrix):
import copy
matrix = copy.deepcopy(matrix)
return matrix and list(matrix.pop(0)) + rotatePrint(rotate(matrix))
######### Test #############
def printMatrix(matrix):
for row in matrix:
print ' '.join( str(i) for i in row)
matrix = [
[1,2,3],
[4,5,6],
[7,8,9]]
print 'original:'
printMatrix(matrix)
print 'rotate print:',rotatePrint(matrix)
print 'transpose:'
printMatrix( transpose(matrix) )
print 'rotate:'
printMatrix( rotate(matrix))
输出为:
黄世宇/Shiyu Huang's Personal Page:huangshiyu13.github.io/
本文共计273个文字,预计阅读时间需要2分钟。
给一个矩阵,按照顺时针旋转90度输出其元素,例如:对于矩阵:\[ \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} \]输出应为:\[ 1, 2, 3, 6, 9, 8, 7, 4, 5 \]
def transpose(matrix): return zip(*matrix)
def rotate(matrix): return transpose(matrix)[::-1]
给一个矩阵,顺时针旋转顺序输出其元素,例如:
对于矩阵:
[ 1, 2, 3 ]
[ 4, 5, 6 ]
[ 7, 8, 9 ]
输出为:
1,2,3,6,9,8,7,4,5
def transpose(matrix):return zip(*matrix)
def rotate(matrix):
return zip(*matrix)[::-1]
def rotatePrint(matrix):
import copy
matrix = copy.deepcopy(matrix)
return matrix and list(matrix.pop(0)) + rotatePrint(rotate(matrix))
######### Test #############
def printMatrix(matrix):
for row in matrix:
print ' '.join( str(i) for i in row)
matrix = [
[1,2,3],
[4,5,6],
[7,8,9]]
print 'original:'
printMatrix(matrix)
print 'rotate print:',rotatePrint(matrix)
print 'transpose:'
printMatrix( transpose(matrix) )
print 'rotate:'
printMatrix( rotate(matrix))
输出为:
黄世宇/Shiyu Huang's Personal Page:huangshiyu13.github.io/

