python - 从切片对象解析切片信息?

标签 python

我正在尝试从切片中获取信息。这是我的功能的开始。 (我已经在第四行尝试了“elif isinstance(key, slice):”,但无法正常工作)

    def __getitem__(self, key):
    if isinstance(key,(int, long)):
        #do stuff if an int
    elif #item is slice
        #do stuff if a slice

如果我调用 obj[4:6] 函数来调用这个函数,并且在函数中打印“key”变量,它会打印“slice(4,6, None)” 如何解析 4 和 6 值?我想做的是能够在函数内使用列表中的数据。

最佳答案

>>> slice(4,5).start
4
>>> slice(4,5).stop
5
>>> slice(4,5).step  #None

切片对象的一个​​特别有用的方法是 indices 方法:

>>> slice(4,5).indices(12)
(4, 5, 1)

你可以这样使用它:

 for i in range(*my_slice.indices(len(self))):
     print self[i]

请注意,这对于负索引或负步长非常有用:

>>> slice(4,-5).indices(12)
(4, 7, 1)
>>> print range(*slice(None,None,-1).indices(12))
[11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

关于python - 从切片对象解析切片信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16925206/

相关文章:

python - 如何在 macOS 上更快地截取屏幕截图?

android - adb命令使用python杀死后台进程

python - 使用参数更改函数中的变量

python - 为什么 python + pylons "remember"之前指定了类变量?

python - Python Pandas 中的 Stack/Unstack 多索引数据透视表

python - python中的单个命令从类似文件的package.json安装相关模块

python - 如何在 python 中移动 2-5 字节长的字节对象中的位?

python - Selenium webdriver 的工厂模式

Python 解析 JSON 时出错

python - Django Admin 注册 ManyToMany 中间模型