【问题标题】:Python Slicing Problem , when step is negative what is going on?Python切片问题,当步骤为负时发生了什么?
【发布时间】:2019-03-07 21:13:47
【问题描述】:
a[:-3:-1] # the last two items, reversed
a[-3::-1] # everything except the last two items, reversed

我不明白这两个切片是如何发生的。对于您看到的第一个命令,没有给出第一个元素。所以理想情况下,它应该从头开始,但事实并非如此。它正在反向打印最后两个元素。

对于第二个,如果你看到 -3 表示它指的是结尾的第三个元素,但切片是从头开始的。我完全被卡住了,不知道为什么。

【问题讨论】:

标签: python python-3.x slice


【解决方案1】:

正的步长值将从左到右遍历列表。负步长值从右到左遍历列表。

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

nums[::1]     # '[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]'
nums[::-1]    # '[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]'
nums[1::-1]   # '[2, 1]'
nums[:-3:-1]  # '[10, 9]'
nums[-3::-1]  # '[8, 7, 6, 5, 4, 3, 2, 1]'

【讨论】:

    猜你喜欢
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多