使用 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)
(下次请展示你自己尝试过的东西。)
这是我要分解的列表:
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)
(下次请展示你自己尝试过的东西。)