你的内容中有一个return
语句,所以函数一旦到达那个点就会返回.你应该让你的回归与时间相同:
def transpose(matrix): n = 0 li = [] while n < (len(matrix)): ... return li
您还可以n
使用迭代的for循环替换while循环和计数器,range(len(matrix))
以便可以安全地丢弃n
,然后li
在循环外部移动初始化:
def transpose(matrix): li = [] for i in range(len(matrix)): inner_li = [] for sets in matrix: inner_li.append(sets[i]) li.append(inner_li) return li
我建议您采用流行的配方来转置矩阵,以使代码更清晰:
def transpose(matrix): return list(zip(*matrix))
>>> transpose([[1,2,3],[4,5,6],[7,8,9]]) [(1, 4, 7), (2, 5, 8), (3, 6, 9)]