提问人:layan 提问时间:11/23/2022 最后编辑:layan 更新时间:11/23/2022 访问量:473
将行列表转换为列列表 Python
Convert list of rows to list of columns Python
问:
蟒。如何根据列表中的索引数将列表列表转换为列列表列表。但是每次我都可以有不同的矩阵(维度),不同的行数/列表和列表中的不同数量的数字
例如,从此列表列表中:
x = [
[1, 0, 0, 0, 1, 0, 0],
[0, 0, 2, 2, 0, 0, 0],
[0, 1, 0, 0, 0, 2, 2]
]
对于此列列表列表:
y = [[1,0,0],[0,0,1],[0,2,0],[0,2,0],[1,0,0],[0,0,2],[0,0,2]]
答:
1赞
Adid
11/23/2022
#1
您可以使用 zip 来执行此操作。通过解压缩到其子列表中并将其传递到 zip 中,您可以获得所需的格式:x
x = [
[1, 0, 0, 0, 1, 0, 0],
[0, 0, 2, 2, 0, 0, 0],
[0, 1, 0, 0, 0, 2, 2]
]
y = list(zip(*x))
print(y)
>>> [(1, 0, 0), (0, 0, 1), (0, 2, 0), (0, 2, 0), (1, 0, 0), (0, 0, 2), (0, 0, 2)]
1赞
stunlocked
11/23/2022
#2
使用 numpy:
x = numpy.fliplr(numpy.rot90(x, k=3))
rot90 旋转数组,fliplr 翻转数组,因此它看起来像一个列列表
仅使用 Python 函数:
x = list(zip(*x))
它将输出元组列表。如果您需要列表列表:
x = list(map(list, zip(*x)))
zip 基本上将列转换为行,并将它们作为元组返回。它需要可迭代对象,因此通过编写 *x,您可以将每一行作为可迭代对象传递。然后使用地图和列表将元组转换回列表。
评论
0赞
FAB
11/23/2022
我会在麻木旋转后添加,但我喜欢这个:).tolist()
下一个:遍历子元素的子元素
评论