使用 Python 将列表分成两个子列表

Breaking a list into two sublists with Python

这是我要分解的列表:

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

我想知道是否可以创建两个列表,其中第一个列表包含 A 的所有子列表及其子列表(例如 [[0, 3], [1, 2]], [[2, 3], [0, 1]] 等),而第二个列表仅包含 A 的子列表有数字(例如 [1,2][2,3] 等)。我怎样才能做到这一点?感谢您的帮助:)

您可以遍历列表,例如:

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

listAux1 = list()
listAux2 = list()

for item in listA:
    if type(item[0]) == list:
        listAux1.append(item)
    else:
        listAux2.append(item)

print(listAux1)
print("------")
print(listAux2)

希望我已经回答了你的问题!

您可以这样做 - 使用 isinstance 来测试子列表的任何元素是否本身就是列表。

list1 = []
list2 = []

for sublist in listA:
    if any(isinstance(element, list) for element in sublist):
        # contains one or more lists
        list1.append(sublist)
    else:
        # does not contain any lists
        list2.append(sublist)

print(list1)
print(list2)

(下次请展示你自己尝试过的东西。)