切片到索引或结尾,如果结尾小于索引 (python)

Slice to index or end, if end is lesser then index (python)

我想获取一些 np.ndarray 对象的切片 foo:

bar = foo[:end]

但有时 end 可以大于 len(foo)。然后我想得到bar = foo。如果我写 bar = foo[:min(end, len(foo)],我可以做到这一点。但它似乎不是pythonic。有更简单的方法吗?

您实际上不需要任何特殊逻辑来处理超出范围的切片。默认情况下,如果 end 太大,切片将包括数组的末尾。

>>> a = np.array([1,2,3])
>>> a
array([1, 2, 3])
>>> a = a[:10]
>>> a
array([1, 2, 3])