面试题答案
一键面试matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transposed_matrix = [[matrix[j][i] for j in range(len(matrix))] for i in range(len(matrix[0]))]
print(transposed_matrix)
切片操作在该场景下的优势
- 直观性:代码逻辑比较直观,通过嵌套的列表推导式,直接按照矩阵转置的定义进行元素的重新排列,易于理解算法的核心逻辑。
- 纯Python实现:不需要引入额外的库,对于简单的矩阵转置需求,在仅依赖Python内置功能的场景下非常适用,增强了代码的可移植性和通用性。
切片操作在该场景下的局限性
- 效率较低:相比于
zip
函数或者numpy
库中的转置方法,这种基于列表推导式的切片操作效率较低。因为列表推导式本质上是循环操作,对于大规模矩阵,性能会显著下降。 - 代码冗长:对于复杂的矩阵操作,使用切片操作实现会导致代码变得冗长,难以维护。而
numpy
库提供了更简洁且功能强大的矩阵操作方法。