首页 > 解决方案 > 我可以切片像numpy这样的列表吗?

问题描述

如果我使用 numpy,则可以按如下方式对数组进行切片:

import numpy as np

A = np.asarray([1, 2, 3, 4, 5])
print(A[np.asarray([1, 3])])

然后输出是[2 4]我想知道当 A 只是一个 list 时,我是否可以在不使用 numpy 的情况下执行相同的操作。

标签: pythonlistnumpy

解决方案


不幸的是,你不能。您可以对纯 python 列表进行切片。但是,这不是切片。如果你在列表中尝试,你会得到

TypeError: list indices must be integers or slices, not list

numpy 数组支持这一点,因为它们具有不同的__get__方法实现。除了自己对类进行子类化之外,您无能为力list(实际上不应该这样做,numpy 实现已针对此类操作进行了优化)。


推荐阅读