如果我使用numpy,则可以如下分割数组:
import numpy as np
A = np.asarray([1, 2, 3, 4, 5])
print(A[np.asarray([1, 3])])
然后输出为[2 4]
。
我想知道是否可以在不使用numpy的情况下执行相同的操作,当A只是列表时。
答案 0 :(得分:2)
不幸的是,你不能。您可以切片一个纯python列表。但是,这不是切片。如果您在列表上尝试使用
TypeError: list indices must be integers or slices, not list
这由numpy数组支持,因为它们具有__get__
方法的不同实现。除了自己对list
类进行子类化(您实际上不应该这样做,numpy实现已针对此类操作进行了优化)之外,您无能为力。
答案 1 :(得分:1)
使用列表理解,您只需键入几下即可完成此操作:
print([A[n] for n in [1, 3]])