2015-10-05 57 views
1

在的this page从Python 2.3文档它说的底部:从元组创建范围(slice.indices())

切片对象现在具有给定的长度的方法的索引(长度)序列,返回可以被直接传递一个(启动,停止,步骤)元组的范围()

下面是一些测试代码:

s = slice(0, 10) 
r = range(s.indices(10)) 

它抛出一个TypeError

TypeError: range() integer end argument expected, got tuple. 

为什么不这项工作?

在我的使用案例中,range()library中被调用,我需要提供这样使用的slice

+2

这不是它如何在你的链接中使用它实际上使用范围(*索引) –

回答

1

试试这个:

r = range(*s.indices(10)) 

说明:range()预计最多三个整数作为参数,所以我们需要解压元组使用*,在图示操作员通过indices()返回整数的。

+0

只是发布这个! :) ++。 – idjaw

+0

这是否意味着图书馆目前被破坏? (问题中的链接转到特定的代码行) – Toast

+0

范围期望1-3整数 –