python列表实现矩阵行列转换

本文采用列表嵌套实现矩阵的行列转换。

第一种方法(此方法来源于https://docs.python.org/zh-cn/3/tutorial/datastructures.html#list-comprehensions

复制代码
matrix = [
    [1, 2, 3, 4],    [5, 6, 7, 8],    [9, 10, 11, 12],
]
print(
    [[row[i] for row in matrix] for i in range(4)]
)

第二种方法,使用for循环实现。

初始代码如下:

复制代码
matrix = [
    [1, 2, 3, 4],    [5, 6, 7, 8],    [9, 10, 11, 12],
]
# print(
#     [[row[i] for row in matrix] for i in range(4)]
# )
result = []
result_1 = []
for y in range(len(matrix[0])):
    for x in range(len(matrix)):
        result_1.append(matrix[x][y])
    result_1=list(result_1)
    print('result_1',result_1)
    print('len(result)',len(result))
    result.append(result_1)
    result_1[:]=[]
    print('result',result)

运行程序,发现第一层外循环结束后,result的元素不对(如下

复制代码
result_1 [1, 5, 9]
len(result) 0
result [[]]         #第一层外循环结束后的结果
result_1 [2, 6, 10]
len(result) 1
result [[2, 6, 10], []]
result_1 [3, 7, 11]
len(result) 2
result [[2, 6, 10], [3, 7, 11], []]
result_1 [4, 8, 12]
len(result) 3
result [[2, 6, 10], [3, 7, 11], [4, 8, 12], []]

然后将问题发给CHATGPT4-MINI,得到的结果如下:

按照提示,调整代码。调整滞后的代码如下:

复制代码
result = []
for y in range(len(matrix[0])):
    result_1 = []                  #代码修改点
    for x in range(len(matrix)):
        result_1.append(matrix[x][y])
    result_1=list(result_1)
    print('result_1',result_1)
    print('len(result)',len(result))
    result.append(result_1)
    # result_1[:]=[]              #代码修改点
    print('result',result)

运行结果

输出结果符合预期。

总结:多层循环的时候,一定要注意全局变量和局部变量的赋值、还原。

PS:GPT很强大,可以好好利用它帮助我们提高学习效率。

相关推荐
多年小白14 小时前
AI 日报 - 2026年4月6日
网络·人工智能·科技·矩阵
笨笨饿1 天前
30_泰勒级数
c语言·stm32·嵌入式硬件·线性代数·机器学习·自动化·概率论
计算机安禾1 天前
【数据结构与算法】第28篇:平衡二叉树(AVL树)
开发语言·数据结构·数据库·线性代数·算法·矩阵·visual studio
郝学胜-神的一滴2 天前
[简化版 GAMES 101] 计算机图形学 03:线性代数下
开发语言·c++·线性代数·图形渲染
UltraLAB-F2 天前
科学计算与仿真算力瓶颈深度解析:从MATLAB矩阵分解到COMSOL/ANSYS稀疏求解,UltraLAB硬件方案如何破局?
开发语言·matlab·矩阵
AI科技星2 天前
全球AI信息场(信息网)基础理论与数学建模研究(乖乖数学)
开发语言·人工智能·线性代数·算法·机器学习·数学建模
⊱⋛赫宇⋚⊰2 天前
转专业数学
线性代数·机器学习·概率论
多年小白2 天前
2026年AI智能体“三国杀“:腾讯龙虾矩阵、阿里千问生态与字节豆包的技术架构全解析
网络·人工智能·科技·矩阵·notepad++
Brother Jiawei3 天前
概率-基础
线性代数·机器学习·概率论
米饭不加菜3 天前
机器人导论-通过逆矩阵公式证明齐次变换矩阵的逆
线性代数·矩阵·机器人