gpt4 book ai didi

python-3.x - python : In place transpose of a matrix

转载 作者:行者123 更新时间:2023-12-04 14:23:52 24 4
gpt4 key购买 nike

我尝试编写一个就地转置函数只是为了练习。谁能告诉我这个算法的时间和空间复杂度是多少?

from copy import *

def transpose(matrix):
reference=deepcopy(matrix)
col_num=len(reference[0])
row_num=len(reference)
matrix.clear()

new=[list(map(lambda x: x[i],reference)) for i in range(col_num)]
for i in new:
matrix.append(new)
return matrix

x=[[ 1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
y=transpose(x)

编辑:使我的就地转置代码更加简洁

最佳答案

选项 1:如果是方阵 NxN,则:

def transpose(matrix):
# Transpose O(N*N)
size = len(matrix)
for i in range(size):
for j in range(i+1, size):
matrix[j][i],matrix[i][j] = matrix[i][j],matrix[j][i]

选项 2:通用的“pytonic”方式是这样做的:

mat = [[1,2,3],[4,5,6],[7,8,9]]
transpose = list(zip(*mat))
transpose
>>> [(1, 4, 7), (2, 5, 8), (3, 6, 9)]

zip function reference

关于python-3.x - python : In place transpose of a matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49901252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com