python---实现矩阵转置

实现矩阵转置的两种方式

1). 列表生成式

2). 内置函数zip

li = [
[1,2,3,3,4],
[4,5,6,2,1],
[7,8,9,1,2]
]
方法一 列表生成式

li = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
    [13,14,15,16]
]
print([item2 for item1 in li for item2 in item1])

这里写图片描述
方法1:
print([[ row[columnIndex] for row in li] for columnIndex in range(5)])
columnIndex=0=====> 返回的是每一行的第0个索引值; [1,4,7]
columnIndex=1=====> 返回的是每一行的第0个索引值; [2,5,8]
方法二 内置函数zip

li = [
    [1,2,3,4],
    [5,6,7,8],
    [9,10,11,12],
    [13,14,15,16]
]
"""
    *li: 解包
    zip    1).打包函数, 用于将可迭代的对象作为参数,
           将对象中对应的元素打包成一个个元组,
           然后返回由这些元组组成的列表。
           2).如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,
           利用 * 号操作符,可以将元组解压为列表
           3). zip 方法在 Python 2 和 Python 3 中的不同:
           在 Python 3.x 中为了减少内存,zip() 返回的是一个对象。
           如需展示列表,需手动 list() 转换。
"""

print(list(zip(*li)))

这里写图片描述

你可能感兴趣的:(python---实现矩阵转置)