首页 > 解决方案 > 用 Python 打破子列表

问题描述

这是我要打破的清单:

    List A = [[[[0, 1], [2, 3]], [[0, 2], [1, 3]], [[0, 3], [1, 2]]], [[[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]]]]

列表 A 有 2 个子列表,每个子列表包含 3 对坐标。我想知道是否可以保持这些坐标的顺序,但将一对坐标重新组合为子列表。所以这是所需的输出:

    List B = [[[0, 1], [2, 3]], [[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]]]

谢谢!!

标签: pythonlistsublistreorganize

解决方案


您可以将其转换为 numpy 数组,对其进行整形,然后再将其转换回来。

import numpy as np

A = [[[[0, 1], [2, 3]], [[0, 2], [1, 3]], [[0, 3], [1, 2]]], [[[0, 2], [1, 3]], [[0, 3], [1, 2]], [[0, 2], [1, 3]]]]

npA = np.array(A)

B = npA.reshape(6, 2, 2).tolist()

或者,如果您希望它泛化到不同的输入大小

B = npA.reshape(npA.size // 4, 2, 2).tolist()

推荐阅读