首页 > 解决方案 > 如何在python 3中同时删除嵌套列表的行和列

问题描述

我需要一点帮助...我需要使用行数和列数(python 3.8)从嵌套列表中同时删除列和行。有没有一种简单的方法可以做到这一点?

L = [[1,2,3], [4,5,6],[7,8,9]] (行=0,列=1);

newL = [[5,6],[7,8]]

标签: python

解决方案


嵌套列表理解而不修改原始列表

def remove_row_col(L, row, col):
    if row not in range(len(L)):
        return
    if col not in range(len(L[0])):
        return
    return [[c for c in r[:col] + r[col + 1 :]] for r in L[:row] + L[row + 1 :]]

使用示例

if __name__ == "__main__":
    L = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    print(remove_row_col(L, 0, 1))
    print(remove_row_col(L, 1, 1))
    print(remove_row_col(L, 1, 2))
    print(remove_row_col(L, 1, 3))

输出

[[4, 6], [7, 9]]
[[1, 3], [7, 9]]
[[1, 2], [7, 8]]
None

或者您可以删除行并迭代 col(将修改数组)

del L[row]
for r in L:
  del r[col]

推荐阅读