实现矩阵转置的两种方式
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)))