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

时间:2015-10-05 00:45:21

标签: python python-2.7 range slice

在Python 2.3文档的this page底部,它说:

  

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

以下是一些测试代码:

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

抛出TypeError

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

为什么这不起作用?

在我的用例中,range()中调用了slice,我需要提供以这种方式使用的CREATE TABLE UserKarma ( user_id uuid, sub_type text, karma counter, PRIMARY KEY(user_id, sub_type) ) WITH COMPACT STORAGE

1 个答案:

答案 0 :(得分:1)

试试这个:

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

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