- list01 = [
- [2, 4, 1, 8, 9],
- [1, 2, 3, 8, 9],
- [8, 9, 10, 8, 9],
- [8, 9, 10, 8, 9]
- ]
-
- list02 = []
-
- for r in range(len(list01[0])):
- line = []
- for c in range(len(list01)):
- line.append(list01[c][r])
- list02.append(line)
矩阵转置的另外一种算法:
以对角线为分割线,讲对角线下半部分的元素与上半部分的元素交换位置即可
- list01 = [
- [1, 2, 3, 4],
- [5, 6, 7, 8],
- [9, 10, 11, 12],
- [13, 14, 15, 16]
- ]
-
- for r in range(len(list01)):
- # function 1:
- # for c in range(len(list01)):
- # if r < c:
- # list01[r][c], list01[c][r] = list01[c][r], list01[r][c]
-
- # function 2
- for c in range(r, len(list01)):
- list01[r][c], list01[c][r] = list01[c][r], list01[r][c]
-
- print(list01)
输出
- [
- [1, 5, 9, 13],
- [2, 6, 10, 14],
- [3, 7, 11, 15],
- [4, 8, 12, 16]
- ]