纯 Python 中的二维数组列切片,没有 for 循环

2d Array column slicing in Pure Python without for loops

是否可以在不使用 for 循环或列表理解的情况下从纯 Python 的二维数组中切出一列?比如说你有一个 4x4 的整数数组:

grid = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]

假设您想要 return 没有第一行和最后一列的网格 [[5,6,7],[9,10,11],[13,14,15]] 是否有允许您执行此操作的切片语法?使用 grid = grid[1:4] 可以很容易地排除第一行 然而,像 grid = grid[1:4][0:2] 这样的操作似乎应该有效,但结果是 [[5, 6, 7, 8], [9, 10, 11, 12]]。如果可能的话,我想避免在 for loop/list 理解中迭代它。我知道这行得通,但我想知道是否有更优雅的语法。

对于 ddejohn 的观点,这不能仅用切片符号来完成。这不使用切片符号,但不使用列表组合或 for 循环的一个很好的答案是 list(zip(*matrix)) if matrix 是输入列表。