python - python 切片符号可以在括号外使用吗?

标签 python slice

在括号内,python 的切片速记自动生成切片对象的元组:

class Foo(object):
    def __getitem__(self, key):
        print key

Foo()[1::, 2:20:5]

这会打印 (slice(1, None, None), slice(2, 20, 5))。然而,据我所知,这个简写在括号外不起作用。

有没有办法在其他情况下使用切片速记?我可以定义一个虚拟对象,它只返回传递给 __getitem__ 的任何内容——这至少会给我一种使用速记语法生成切片元组的方法。有没有更pythonic的方式?

最佳答案

NumPy 有一个 s_将为您执行此操作的对象:

>>> np.s_[2::2]
slice(2, None, 2)

您只需设置 s_ = Foo() 即可轻松制作您自己的版本,然后在您想要轻松创建切片时使用 s_

关于python - python 切片符号可以在括号外使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11980524/

相关文章:

python - 打开具有命名范围的 Excel 文件时出现 xlrd 错误

python - 无法在 AWS EMR 上使用 PySpark Dataframe 保存 CSV 文件

python - 如何在 git 上构建多个函数以在 Google Cloud Functions 上自动部署?

python - 如何使用 dbus 公开对象列表

python - 如何删除 float64 值的多余数字?

Python:提取 2D numpy 数组的核心

javascript - 复制对象数组哪种方式更快: slice or clone?

python - 使用 setup.py 和 Pipfile 部署 python 应用程序

arrays - 为什么在使用 ReadBytesExt 从 byte slice 段中读取整数时会出现错误 "trait bounds were not satisfied"?

python - 在 pandas dataframe .loc 方法中,如何分配给变量以使其行为类似于 ":"?