【问题标题】:Create range from tuple (slice.indices())从元组创建范围 (slice.indices())
【发布时间】:2016-01-01 14:16:41
【问题描述】:

Python 2.3 文档中this page 的底部写着:

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

这是一些测试代码:

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

它会抛出一个TypeError:

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

为什么这不起作用?

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

【问题讨论】:

  • 这不是它在您的链接中的使用方式,它实际上使用了range(*indices)

标签: python python-2.7 range slice


【解决方案1】:

试试这个:

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

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

【讨论】:

  • 刚刚发布了这个! :) ++。
  • 这是否意味着该库当前已损坏? (问题中的链接转到特定的代码行)
  • 范围需要 1-3 个整数
猜你喜欢
  • 1970-01-01
  • 2022-07-26
  • 2016-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多