zoukankan      html  css  js  c++  java
  • 转置矩阵—列表使用练习

     1 '''
     2 求转置矩阵,方阵,普通矩阵
     3 '''
     4 
     5 '''
     6 求转置矩阵,普通矩阵
     7 l = [[1,2,3],[4,5,6]]
     8 ---> a = [[1,4],[2,5],[3,6]]
     9 '''
    10 # NO 1 
    11 l = [[1,2,3],[4,5,6],[7,8,9]] # 通常矩阵的表示方法可以利用列表,元组表示,但是元组不可变,所以选择列表
    12 
    13 length = len(l)
    14 for i in range(length): # 反正,可以考虑到是两层循环
    15     for j in range(i):
    16       
    17         l[j][i] ,l[i][j] = l[i][j],l[j][i] # 利用了封装与结构,右侧是一个元组,通过解构赋值给左侧的相应变量
    18 print(l)
    19 
    20 
    21 '''
    22 普通矩阵的转置
    23 '''
    24 l = [[1,2,3],[4,5,6]]
    25 
    26 # # 先得到一个新矩阵,利用填空模式,例如:杨辉三角对称法,单行模式法都有利用
    27 length = len(l)
    28 m = [[0 for i in range(length)] for i in range(len(l[0]))] # 利用列表解析,生成新的列表
    29 
    30 # # 在添值
    31 for i in range(length):
    32     for j in range(len(l[0])):
    33         m[j][i] = l[i][j]
    34 print(m)
    35 
    36 
    37 # 常规做法:效率有点低,但是思想不错
    38 # 首先 原矩阵 2 * 3 转 为3 * 2 
    39 l = [[1,2,3],[4,5,6]]
    40 tm = []
    41 
    42 for row in l:# 得到每一行
    43 #     print(row)
    44     for j, val in enumerate(row):  # 使用了enumerate() 内建函数  , j是索引号
    45         if len(tm) < j + 1: # 第一行刚进来,因为要append到tm里的子列表中,所以需要生成。
    46             tm.append([])
    47         tm[j].append(val)
    48 print(tm)
    49 
    50 # 其他思路:
    51 a = [[1,2,3],[4,5,6]]
    52 for i in range(3):
    53     for j in range(2):
    54         print('{}'.format(a[j][i]),end='')
    55     print()
    56 # --------------------------------------------
    57 a = '123
    456'
    58 print(a)
    59 l = a.split('
    ')
    60 print(l)
    61 for j in range(3):
    62     for i in range(2):
    63         print('{}'.format(l[i][j]),end='')
    64     print()
    为什么要坚持,想一想当初!
  • 相关阅读:
    微信小程序用vant,dialog弹出框
    小程序太阳码 ,不发布也可以测试
    php ,通过password与salt共同来验证登录
    vscode 使用less开发微信小程序
    php命名规范
    61键 如何打波浪线
    php 循环使用
    记一次,物业费时间交集问题
    Mac拖拽文件
    python 支持中文
  • 原文地址:https://www.cnblogs.com/JerryZao/p/9471284.html
Copyright © 2011-2022 走看看