我创建了一个程序,在删除矩阵的第一行后,逐个删除矩阵的列



即,在删除矩阵的第一列之后,我希望在恢复第一列的同时删除第二列,然后在恢复第二列的同时移除第三列。然而,我无法做到这一点,所以我需要的帮助

i:每次迭代后的预期输出

[[5, 6], [8, 9]]
[[4, 6], [7, 9]]
[[4, 5], [7, 8]]

到目前为止我的代码:

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
b = []
b = a.copy()
a.pop(0)
for i in range(3):
for j in range(2):
a[j].pop(i)
a = b

首先,您需要在弹出最上面一行之后而不是之前获取b的副本。其次,copy确实创建了一个新列表,但新列表仍然包含对三个旧列表的引用。你可以使用deepcopy,也可以这样做:

a = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
a.pop(0)
b = [row[:] for row in a]
for i in range(3):
for row in a:
row.pop(i)
print(a)
a = [row[:] for row in b]

相关内容

  • 没有找到相关文章

最新更新