从元组创建范围 (slice.indices())

Toa*_*ast 3 python range slice python-2.7

在Python 2.3 文档的本页底部,它说:

slice 对象现在有一个方法index(length),在给定序列长度的情况下,该方法返回一个(start、stop、step)元组,该元组可以直接传递给range()

这是一些测试代码:

s = slice(0, 10)
r = range(s.indices(10))
Run Code Online (Sandbox Code Playgroud)

它抛出一个TypeError

TypeError: range() integer end argument expected, got tuple.
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

在我的用例中,在range()中调用,我需要提供以这种方式使用的。slice

Ósc*_*pez 5

尝试这个:

r = range(*s.indices(10))
Run Code Online (Sandbox Code Playgroud)

说明:range()需要最多三个整数作为参数,因此我们需要使用splat 运算符来解压返回的整数元组。indices()*