在括号内,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/