【问题标题】:Basic Python range and slicing not working [closed]基本的 Python 范围和切片不起作用 [关闭]
【发布时间】:2017-01-31 14:07:36
【问题描述】:

有人能解释一下这里发生了什么吗? 切片好像没了是吧? 在交互式 shell 上执行此操作。

>>> range(3,100,7)[0:5]
range(3, 38, 7)

【问题讨论】:

  • 你得到了哪些你认为错误的输出?
  • 38 不属于range(3,38,7) 定义的范围,如果您想知道的话。
  • 您没有指定您期望发生的事情,因此人们猜测您希望答案中的输出。请在您的问题中包含所需的行为。

标签: python python-3.x range slice


【解决方案1】:

range(3, 100, 7) 返回一个range 对象。 range 对象理解切片。注意list(range(3,100,7))[0:5]list(range(3,38,7))是一样的

【讨论】:

    【解决方案2】:

    由于 python3 range() 输出它自己的类型,并且理解切片:

    >>> range(100)[5:10]
    range(5, 10)
    

    如果你想这样使用它,你必须将它转换为一个列表:

    >>> list(range(100))[5:10]
    [5, 6, 7, 8, 9]
    

    所以这也可以,并且在性能方面可能更好:

    list(range(100)[5:10])
    [5, 6, 7, 8, 9]
    

    【讨论】:

    • Maaaaan,我的答案几乎完成了,它涵盖了首先切片 range() 对象然后将其转换为 list 的部分内容。好收获!
    猜你喜欢
    • 2015-03-10
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 2023-03-29
    • 1970-01-01
    • 2016-12-26
    • 2014-02-24
    相关资源
    最近更新 更多