【问题标题】:Python3 list-slicing with negative arguments带有负参数的 Python3 列表切片
【发布时间】:2015-06-28 07:50:27
【问题描述】:

我很难理解为什么带有负索引号的 python3 切片方法会执行以下操作: 我的清单例如:Numbers=[1,2,3,4,5,6] 现在如果我告诉 python

>>>Numbers[::-1] 

他说:[4,3,2,1] 所以它将列表从最后一个索引递增-1(或从后面到第一个索引)

谁能解释其中的原理以及这是如何发生的?

【问题讨论】:

  • 我猜fromto参数的默认参数取决于step参数是正数还是负数。

标签: list slice python-3.4


【解决方案1】:

当重做完全相同的步骤时,我的输出与你的不同,并且表现如预期,即反转列表:

Python 3.4.2 (default, Oct  8 2014, 13:18:07) 
>>> Numbers=[1,2,3,4,5,6]
>>> Numbers[::-1] 
[6, 5, 4, 3, 2, 1]

遵循切片语法[from:to:step],因为my_list[::-1] 会将列表中的所有元素从start 带到end,步长为-1,这意味着从末尾开始。因此它会复制列表并反转它:

>>> id(Numbers) == id(Numbers[::-1])
False

你有没有机会在两次调用之间对你的变量做任何事情?

【讨论】:

    猜你喜欢
    • 2016-07-21
    • 2020-11-29
    • 2022-11-10
    • 2010-12-14
    • 2013-08-04
    • 2021-11-19
    • 2021-04-18
    • 2015-08-17
    • 2023-01-19
    相关资源
    最近更新 更多