Chainguys 2021-06-15 09:22 采纳率: 93.6%
浏览 75
已采纳

用Python创建一个矩阵,求详解。。。

# Create a 5 x 5 matrix using a list of lists: matrix
matrix = [[col for col in range(5)] for row in range(5)]

求解。。。

为什么这么写?中间是怎样的一个过程,一个for的推导式是理解的,但是这里主要是不理解两个for之间到底是怎么个关系和逻辑在生成。

谢谢

  • 写回答

1条回答 默认 最新

  • 小P聊技术 2021-06-15 09:26
    关注

    二维列表转置:
    [row[i] for row in matrix] for i in range(matrix[0].len())]

    matrix = [
    ...     [1, 2, 3, 4],
    ...     [5, 6, 7, 8],
    ...     [9, 10, 11, 12],
    ... ]
    print(matrix)
    
    实现矩阵行列转置
    print([[row[i] for row in matrix] for i in range(4)])
    
    嵌套解析语句执行顺序同上 
    左边第二句 for i in range(4)是最外层 
    左边第一句 [row[i] for row in matrix]是最内层
    而最内层 又同样划分为 for row in matrix
    						row[i]
    因此执行顺序是
    for i in range(4)
    	for row in matrix
    		row[i]
    
    
    
    transposed = []
    for i in range(4):
        transposed.append([row[i] for row in matrix])
    print(transposed)
    
    创建二维列表格式:list_2d = [[0 for col in range(cols)] for row in range(rows)]
    list_2d = [ [0 for i in range(5)] for i in range(5)]  #创建
    print(list_2d)
    list_2d[0].append(3)
    list_2d[0].append(5)
    print(list_2d)
    
    运行结果
    [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
    [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
    
    [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
    
    [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    [[0, 0, 0, 0, 0, 3, 5], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    
    

    列表解析详解传送门(https://www.cnblogs.com/liu-shuai/p/6098227.html)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值