gpt4 book ai didi

python - 旋转列表列表

转载 作者:行者123 更新时间:2023-11-30 22:04:37 25 4
gpt4 key购买 nike

m = [[5,9,1,8],
[2,4,5,7],
[6,3,3,2],
[1,7,6,3]]

rotated_map = []
for i in range(len(m[0])):
rotated_map.append([x[i] for x in m])
print(rotated_map)

"""
my result = [[5, 2, 6, 1], [9, 4, 3, 7], [1, 5, 3, 6], [8, 7, 2, 3]]

desired result = [[8,7,2,3],
[1,5,3,6],
[9,4,3,7],
[5,2,6,1]]
"""

我试图通过将列表中的所有最后一个元素首先放入一个列表中,然后将倒数第二个元素放入另一个列表中,依此类推,直到到达第一个元素来旋转列表。

最佳答案

Transpose列表中包含 zip,然后 reverse它使用 [::-1] 语法。

>>> m = [[5, 9, 1, 8], [2, 4, 5, 7], [6, 3, 3, 2], [1, 7, 6, 3]]
>>> list(map(list, zip(*m)))[::-1]
>>> [[8, 7, 2, 3], [1, 5, 3, 6], [9, 4, 3, 7], [5, 2, 6, 1]]

编辑:

如果您想要 pretty-print 效果,那么一直使用 numpy 数组可能是最简单的。

>>> import numpy as np
>>>
>>> m = [[5, 9, 1, 8], [2, 4, 5, 7], [6, 3, 3, 2], [1, 7, 6, 3]]
>>> m = np.array(m)
>>> m
>>>
array([[5, 9, 1, 8],
[2, 4, 5, 7],
[6, 3, 3, 2],
[1, 7, 6, 3]])
>>>
>>> m.T[::-1]
>>>
array([[8, 7, 2, 3],
[1, 5, 3, 6],
[9, 4, 3, 7],
[5, 2, 6, 1]])

请注意,mm.T[::-1] 共享相同的数据,因为 m.T[::-1] 只是m 的另一个 View 。如果需要复制数据,请使用

result = m.T[::-1].copy()

关于python - 旋转列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53242961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com